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

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

java設計模式之外觀模式

2019-11-14 09:54:37
字體:
來源:轉載
供稿:網友

外觀模式:提供了一個統一的接口,用來訪問子系統中的一群接口。外觀定義了一個高層接口,讓子系統更容易使用。

想要使用外觀模式,我們創建了一個接口簡化而統一的類,用來包裝子系統中一個或多個復雜的類。外觀模式相當直接,很容易理解,這方面和許多其他的模式不太一樣。但這并不會降低它的威力:外觀模式允許我們讓客戶和子系統之間避免緊耦合。

外觀模式也可以幫我們遵守一個新的面向對象原則:最少知識原則。 最少知識原則告訴我們要減少對象之間的交互,只留下幾個“密友”,這個原則希望我們在設計中,不要讓太多的類耦合在一起,免得修改系統中一部分,會影響到其他部分。

類圖: 這里寫圖片描述 Facade類其實相當于A、B、C模塊的外觀界面,有了這個Facade類,那么客戶端就不需要親自調用子系統中的A、B、C模塊了,也不需要知道系統內部的實現細節,甚至都不需要知道A、B、C模塊的存在,客戶端只需要跟Facade類交互就好了,從而更好地實現了客戶端和子系統中A、B、C模塊的解耦,讓客戶端更容易地使用系統。

利用外觀模式實現控制家里電器設備的開關,當在家時打開電視,打開燈,打開空調。當離開家時關閉電視,關閉燈,關閉空調。 類圖: 這里寫圖片描述 TV類代碼實現:

public class TV { public void on(){ System.out.Light類代碼實現:

public class Light { public void on(){ System.out.println("打開電燈"); } public void off(){ System.out.println("關閉電燈"); }}

AirConditioner類代碼實現:

public class AirConditioner { public void on(){ System.out.println("打開空調"); } public void off(){ System.out.println("關閉空調"); }}

Fa?ade類代碼實現:

public class Facade { TV tv; Light light; AirConditioner airConditioner; public Facade(TV tv,Light light,AirConditioner airConditioner){ this.tv = tv; this.light = light; this.airConditioner = airConditioner; } public void atHome(){ tv.on(); light.on(); airConditioner.on(); } public void leaveHome(){ tv.off(); light.off(); airConditioner.off(); }}

Client類代碼實現:

public class Client { public static void main(String[]args){ TV tv = new TV(); Light light = new Light(); AirConditioner airConditioner = new AirConditioner(); Facade facade = new Facade(tv, light, airConditioner); //在家時 System.out.println("------at home-------"); facade.atHome(); //離家時 System.out.println("------leave home-------"); facade.leaveHome(); }}

運行結果:

------at home-------打開電視打開電燈打開空調------leave home-------關閉電視關閉電燈關閉空調
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高阳县| 乾安县| 绥阳县| 永泰县| 郧西县| 宁阳县| 济宁市| 莱州市| 石景山区| 波密县| 和龙市| 黔西县| 万荣县| 大田县| 泌阳县| 永州市| 岐山县| 陕西省| 丰县| 永泰县| 元氏县| 临汾市| 都安| 楚雄市| 仪陇县| 蒙自县| 凤庆县| 崇左市| 乌鲁木齐市| 岚皋县| 岳阳县| 澄江县| 广西| 林甸县| 石棉县| 大埔县| 北宁市| 明星| 亚东县| 元谋县| 丹东市|