Java設計形式詳解之門面形式(外不雅形式)。本站提示廣大學習愛好者:(Java設計形式詳解之門面形式(外不雅形式))文章只能為提供參考,不一定能成為您想要的結果。以下是Java設計形式詳解之門面形式(外不雅形式)正文
門面形式(Facade Pattern)也叫外不雅形式,它隱蔽體系的龐雜性,並向客戶端供給一個可以拜訪體系的接口。這類類型的設計形式屬於構造型形式,它向現有的體系添加一個接口,來隱蔽體系的龐雜性,為子體系中的一組接口供給了一個同一的高層拜訪接口,這個接口使得子體系更輕易被拜訪或應用。這類形式觸及到一個單一的類,該類供給了客戶端要求的簡化辦法和對現有體系類辦法的拜托挪用。
簡而言之,就是把一堆龐雜的流程封裝成一個接供詞給用戶更簡略的應用,這個設計形式裡有三個腳色:
1)門面腳色( facade ):這是門面形式的焦點。它被客戶腳色挪用,是以它熟習子體系的功效。它外部依據客戶腳色已有的需求預定了幾種功效組合。
2)子體系腳色(subsystem):完成了子體系的功效。對它而言, façade 腳色就和客戶腳色一樣是未知的,它沒有任何 façade 腳色的信息和鏈接。
3)客戶腳色:挪用 façade 腳色來完成要獲得的功效。
上面是一個簡略的完成實例:
// 界說了一個同一的進口 public class ShapeMaker { private Shape circle; private Shape rectangle; private Shape square; public ShapeMaker() { circle = new Circle(); rectangle = new Rectangle(); square = new Square(); } public void drawCircle() { circle.draw(); } public void drawRectangle() { rectangle.draw(); } public void drawSquare() { square.draw(); } } // 直接應用之前界說的外不雅類來繪制各類外形,至於怎樣取得、怎樣繪制無需存眷 public class FacadePatternDemo { public static void main(String[] args) { ShapeMaker shapeMaker = new ShapeMaker(); shapeMaker.drawCircle(); shapeMaker.drawRectangle(); shapeMaker.drawSquare(); } }
圖1:UML圖示
class DrawerOne { public void open() { System.out.println("第一個抽屜被翻開了"); getKey(); } public void getKey() { System.out.println("獲得第二個抽屜的鑰匙"); } } class DrawerTwo { public void open() { System.out.println("第二個抽屜被翻開了"); getFile(); } public void getFile() { System.out.println("獲得這個主要文件"); } } class DrawerFacade { DrawerOne darwerOne = new DrawerOne(); DrawerTwo darwerTwo = new DrawerTwo(); public void open() { darwerOne.open(); darwerTwo.open(); } } public class DrawerClient { public static void main(String[] args) { DrawerFacade drawer = new DrawerFacade(); drawer.open(); } }
門面形式應用場景:
(1)為龐雜的模塊或子體系供給外界拜訪的模塊。
(2)子體系絕對自力。
(3)在條理化構造中,可使用外不雅形式界說體系中每層的進口。
以上所述是小編給年夜家引見的Java設計形式詳解之門面形式(外不雅形式),願望對年夜家有所贊助!