程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java設計形式詳解之門面形式(外不雅形式)

Java設計形式詳解之門面形式(外不雅形式)

編輯:關於JAVA

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設計形式詳解之門面形式(外不雅形式),願望對年夜家有所贊助!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved