国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

設計模式之九 --- 外觀(Facade)模式

2019-11-06 06:10:22
字體:
來源:轉載
供稿:網友

【1】基本概念

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

【2】簡單分析

          我們先來看下該設計模式的UML結構圖:

【3】如何用java語言實現該設計模式:

由于該設計模式比較簡單,而且我們平時在開發項目的過程中經常會用到該設計模式的,我就不做過多的解析了,針對上面的UML結構圖分別貼出各個類的代碼:

3.1 SubSystemOne.java源碼

[html] view plain copy package com.andyidea.patterns;    public class SubSystemOne {            public void methodOne(){          System.out.PRintln("子系統方法一");      }    }  其實,SubSystemTwo.java ,SubSystemThree.java ,SubSystemFour.java的源碼和 SubSystemOne.java的源碼類似,只是方法內部輸出的內容不同,在這里本人就省略列出其它子系統類的源碼了。呵呵

3.2 Facade.java 類源碼:

[html] view plain copy package com.andyidea.patterns;    public class Facade {            SubSystemOne subOne;      SubSystemTwo subTwo;      SubSystemThree subThree;      SubSystemFour subFour;            public Facade(){          subOne = new SubSystemOne();          subTwo = new SubSystemTwo();          subThree = new SubSystemThree();          subFour = new SubSystemFour();      }            public void invokeMethodA(){          System.out.println("-------方法組A--------");          subOne.methodOne();          subTwo.methodTwo();          subThree.methodThree();      }            public void invokeMethodB(){          System.out.println("-------方法組B--------");          subTwo.methodTwo();          subThree.methodThree();          subFour.methodFour();      }    }  3.3 FacadeClient.java類源碼:[html] view plain copy package com.andyidea.patterns;    public class FacadeClient {            public static void main(String[] args) {          Facade facade = new Facade();                    //調用組件A          facade.invokeMethodA();                    //調用組件B          facade.invokeMethodB();      }  }  【4】何時使用外觀模式

4.1  在設計初期階段,應該要有意識的將不同的兩個層分離,比如經典的三層構架,就需要考慮在數據訪問層和業務邏輯層,業務邏輯層和表示層的層與層之間建立外觀Facade,這樣可以為復雜的子系統提供一個簡單的接口,使得耦合大大降低。

4.2  在開發階段,子系統往往因為不斷的重構演化而變得越來越復雜,大多數的模式使用時也都會產生很多很小的類,這本是好事,但也給外部調用它們的用戶程序帶來了使用上的困難,增加外觀Facade可以提供一個簡單的接口,減少它們之間的依賴。

4.3  在維護一個遺留的大型系統時,可能這個系統已經非常難以維護和擴展了,但因為它包含非常重要的功能,新的需求開發必須依賴于它。此時用外觀模式Facade也是非常合適的。例如可以開發一個外觀Facade類,來提供設計粗糙或高度復雜的遺留代碼的比較清晰簡單的接口,讓新系統與Facade對象交互,Facade與遺留代碼交互所有復雜的工作。

至此,我們應該對外觀模式有了解和何時使用該模式了吧,希望大家多多采用設計模式提高我們代碼的質量和提高維護性和擴展性。

本文為 Andy.Chen 原創,歡迎大家繼續關注Me的博文,歡迎大家轉載,謝謝!
上一篇:SHA1算法的識別

下一篇:59. Spiral Matrix II

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深水埗区| 德保县| 通化市| 灵璧县| 瓮安县| 英德市| 旬邑县| 南宫市| 舞钢市| 盈江县| 盐源县| 榆林市| 雅安市| 光泽县| 临西县| 丰都县| 双城市| 大理市| 昂仁县| 郧西县| 高碑店市| 嘉峪关市| 井冈山市| 牟定县| 长沙县| 绥芬河市| 南靖县| 鸡西市| 土默特右旗| 南宫市| 临夏县| 安康市| 新密市| 湖南省| 建始县| 望都县| 界首市| 固阳县| 舒兰市| 金华市| 凌源市|