麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

java設(shè)計(jì)模式之外觀模式

2019-11-14 09:54:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

外觀模式:提供了一個(gè)統(tǒng)一的接口,用來(lái)訪問(wèn)子系統(tǒng)中的一群接口。外觀定義了一個(gè)高層接口,讓子系統(tǒng)更容易使用。

想要使用外觀模式,我們創(chuàng)建了一個(gè)接口簡(jiǎn)化而統(tǒng)一的類(lèi),用來(lái)包裝子系統(tǒng)中一個(gè)或多個(gè)復(fù)雜的類(lèi)。外觀模式相當(dāng)直接,很容易理解,這方面和許多其他的模式不太一樣。但這并不會(huì)降低它的威力:外觀模式允許我們讓客戶(hù)和子系統(tǒng)之間避免緊耦合。

外觀模式也可以幫我們遵守一個(gè)新的面向?qū)ο笤瓌t:最少知識(shí)原則。 最少知識(shí)原則告訴我們要減少對(duì)象之間的交互,只留下幾個(gè)“密友”,這個(gè)原則希望我們?cè)谠O(shè)計(jì)中,不要讓太多的類(lèi)耦合在一起,免得修改系統(tǒng)中一部分,會(huì)影響到其他部分。

類(lèi)圖: 這里寫(xiě)圖片描述 Facade類(lèi)其實(shí)相當(dāng)于A、B、C模塊的外觀界面,有了這個(gè)Facade類(lèi),那么客戶(hù)端就不需要親自調(diào)用子系統(tǒng)中的A、B、C模塊了,也不需要知道系統(tǒng)內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),甚至都不需要知道A、B、C模塊的存在,客戶(hù)端只需要跟Facade類(lèi)交互就好了,從而更好地實(shí)現(xiàn)了客戶(hù)端和子系統(tǒng)中A、B、C模塊的解耦,讓客戶(hù)端更容易地使用系統(tǒng)。

利用外觀模式實(shí)現(xiàn)控制家里電器設(shè)備的開(kāi)關(guān),當(dāng)在家時(shí)打開(kāi)電視,打開(kāi)燈,打開(kāi)空調(diào)。當(dāng)離開(kāi)家時(shí)關(guān)閉電視,關(guān)閉燈,關(guān)閉空調(diào)。 類(lèi)圖: 這里寫(xiě)圖片描述 TV類(lèi)代碼實(shí)現(xiàn):

public class TV { public void on(){ System.out.Light類(lèi)代碼實(shí)現(xiàn):

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

AirConditioner類(lèi)代碼實(shí)現(xiàn):

public class AirConditioner { public void on(){ System.out.println("打開(kāi)空調(diào)"); } public void off(){ System.out.println("關(guān)閉空調(diào)"); }}

Fa?ade類(lèi)代碼實(shí)現(xiàn):

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類(lèi)代碼實(shí)現(xiàn):

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); //在家時(shí) System.out.println("------at home-------"); facade.atHome(); //離家時(shí) System.out.println("------leave home-------"); facade.leaveHome(); }}

運(yùn)行結(jié)果:

------at home-------打開(kāi)電視打開(kāi)電燈打開(kāi)空調(diào)------leave home-------關(guān)閉電視關(guān)閉電燈關(guān)閉空調(diào)
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久久免费精品国产小说色大师 | 免费黄色小网站 | 日韩视频不卡 | 成人免费福利 | 99在线热播精品免费 | 国产免费小视频在线观看 | 91九色丨porny丨国产jk | 亚洲经典视频 | 调教小男生抽打尿孔嗯啊视频 | 国产一区二区三区在线免费 | 激情久久婷婷 | 免费嗨片首页中文字幕 | 欧美成在线视频 | 午夜视频国产 | 国产精品成aⅴ人片在线观看 | 欧美女优一区 | videos高潮| 久久久久久久久久久av | 精品一区二区久久久久久按摩 | 永久av在线免费观看 | 日本看片一区二区三区高清 | 最新一区二区三区 | 亚洲一区二区不卡视频 | 免费毛片电影 | a级毛片免费观看在线播放 日本aaa一级片 | 国产免费观看av | 中国国语毛片免费观看视频 | 综合网日日天干夜夜久久 | 看国产一级毛片 | 国产精品三级a三级三级午夜 | 国产免费一区二区三区网站免费 | 午夜亚洲影院 | 天天草天天干天天 | 国产精品观看在线亚洲人成网 | av色先锋 | 亚洲爱爱图 | 逼片视频 | 毛片免费在线视频 | 免费性爱视频 | 麻豆视频国产在线观看 | 成人精品久久久 |