91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java外觀模式的示例分析

發布時間:2021-08-07 14:28:16 來源:億速云 閱讀:103 作者:小新 欄目:編程語言

這篇文章主要介紹java外觀模式的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

定義: 

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

角色:

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

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

示意圖:


java外觀模式的示例分析

示例:

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

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、外觀角色類

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、客戶端測試方法

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外觀模式的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连云港市| 渝中区| 易门县| 措美县| 溧水县| 大竹县| 九寨沟县| 红安县| 宜川县| 三亚市| 鹰潭市| 阜宁县| 苏尼特右旗| 石渠县| 凌源市| 南投县| 大渡口区| 涡阳县| 日喀则市| 青浦区| 资兴市| 志丹县| 南投市| 莆田市| 龙泉市| 威海市| 南漳县| 安多县| 玛沁县| 灵武市| 游戏| 太仆寺旗| 靖安县| 蕲春县| 芜湖市| 黑龙江省| 左权县| 乡宁县| 类乌齐县| 库车县| 台州市|