国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 23種設計模式(8) java外觀模式

23種設計模式(8) java外觀模式

2021-02-02 11:28阿木俠 Java教程

這篇文章主要為大家詳細介紹了23種設計模式之java外觀模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

23種設計模式第八篇:java外觀模式

定義:

       為子系統中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。

角色:

        1、外觀(Facade)角色 :客戶端可以調用這個角色的方法。此角色知曉相關子系統的功能和責任。在正常情況下,本角色會將所有從客戶端發來的請求委派到相應的子系統去。 

       2、子系統(SubSystem)角色 :可以同時有一個或者多個子系統。每個子系統都不是一個單獨的類,而是一個類的集合。每個子系統都可以被客戶端直接調用,或者被外觀角色調用。子系統并不知道外觀角色的存在,對于子系統而言,外觀角色僅僅是另外一個客戶端而已。

示意圖:


23種設計模式(8) java外觀模式

示例:

1、子系統角色,由若干個類組成

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class SubClass1 {
 public void method1(){
  System.out.println("這是子系統類1中的方法1");
 }
 public void method2(){
  System.out.println("這是子系統類1中的方法2");
 }
}
public class SubClass2 {
 public void method1(){
  System.out.println("這是子系統類2中的方法1");
 }
 public void method2(){
  System.out.println("這是子系統類2中的方法2");
 }
}
public class SubClass3 {
 public void method1(){
  System.out.println("這是子系統類3中的方法1");
 }
 public void method2(){
  System.out.println("這是子系統類3中的方法2");
 }
}

2、外觀角色類

?
1
2
3
4
5
6
7
8
9
10
public class FacadeClass {
 public void FacadeMethod(){
  SubClass1 s1 = new SubClass1();
  s1.method1();
  SubClass2 s2 = new SubClass2();
  s2.method1();
  SubClass3 s3 = new SubClass3();
  s3.method1();
 }
}

3、客戶端測試方法

?
1
2
3
4
5
6
public class ClientClass {
 public static void main(String[] args) {
  FacadeClass fc = new FacadeClass();
  fc.FacadeMethod();
 }
}

        Facade類其實相當于子系統中SubClass類的外觀界面,有了這個Facade類,那么客戶端就不需要親自調用子系統中的那些具體實現的子類了,也不需要知道系統內部的實現細節,甚至都不需要知道這些子類的存在,客戶端只需要跟Facade類交互就好了,從而更好地實現了客戶端和子系統中具體類的解耦,讓客戶端更容易地使用系統。
        同時,這樣定義一個Facade類可以有效地屏蔽內部的細節,免得客戶端去調用Module類時,發現一些不需要它知道的方法。如上代碼,我的所有子類中的方法二都是方法一調用的方法,是配合方法一的,他們不需要被客戶端調用,而且具有一定的保密性,這樣使用外觀模式時就可以不被客戶端知道。

優點:

        實現了子系統與客戶端之間的松耦合關系。
        客戶端屏蔽了子系統組件,減少了客戶端所需處理的對象數目,并使得子系統使用起來更加容易。

適用場景:

        設計初期階段,應該有意識的將不同層分離,層與層之間建立外觀模式。
        開發階段,子系統越來越復雜,增加外觀模式提供一個簡單的調用接口。
        維護一個大型遺留系統的時候,可能這個系統已經非常難以維護和擴展,但又包含非常重要的功能,為其開發一個外觀類,以便新系統與其交互。

外觀模式總結:

1、外觀模式為復雜子系統提供了一個簡單接口,并不為子系統添加新的功能和行為。
2、外觀模式實現了子系統與客戶端之間的松耦合關系。
3、外觀模式沒有封裝子系統的類,只是提供了簡單的接口。 如果應用需要,它并不限制客戶使用子系統類。因此可以靈活的在系統易用性與通用性之間選擇。
4、外觀模式注重的是簡化接口,它更多的時候是從架構的層次去看整個系統,而并非單個類的層次。

轉自:java知音

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久草久| 日韩久久综合 | 91黄在线观看| 精品视频免费在线 | 一级黄色影视 | 久久综合成人精品亚洲另类欧美 | 欧美精品久久久久 | 欧美中文字幕在线 | 99热新 | 国产精品久久99 | 国产精品国色综合久久 | 欧美成人二区 | 亚洲精品无 | 国产一区二区三区免费 | 亚洲激情网站 | 五月婷婷婷婷 | 成人免费毛片aaaaaa片 | 色九九九 | 欧美视频三区 | 久久99国产精一区二区三区 | 亚洲一区二区三区四区在线 | 欲色视频| 久久综合九色综合网站 | 日韩中文字幕在线观看 | 日韩电影中文字幕 | 精品国产一区二区三区忘忧草 | 欧美不卡一区二区三区 | 日韩在线电影 | 欧美一区二区三区在线视频 | 九九在线精品视频 | 欧美日本免费一区二区三区 | 亚洲一区二区中文字幕 | 日本一区二区三区免费观看 | 国产一区二区三区视频 | www.日韩视频 | 欧美黄色一区二区 | 欧美一级电影在线 | 日本在线观看一区 | 一级毛片免费看 | 午夜免费影视 | 午夜午夜精品一区二区三区文 |