五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

設(shè)計(jì)模式:外觀模式(Facade模式)

2021-11-15 14:50 作者:會飛的蝸牛007  | 我要投稿

Facade(外觀)模式為子系統(tǒng)中的各類(或結(jié)構(gòu)與方法)提供一個(gè)簡明一致的界面,隱藏子系統(tǒng)的復(fù)雜性,使子系統(tǒng)更加容易使用

當(dāng)一個(gè)系統(tǒng)的功能越來越強(qiáng),子系統(tǒng)會越來越多,客戶對系統(tǒng)的訪問也變得越來越復(fù)雜。所以有必要為多個(gè)子系統(tǒng)提供一個(gè)統(tǒng)一的接口,從而降低系統(tǒng)的耦合度


外觀(Facade)模式是“迪米特法則”的典型應(yīng)用,它有以下主要優(yōu)點(diǎn)。

  1. 降低了子系統(tǒng)與客戶端之間的耦合度,使得子系統(tǒng)的變化不會影響調(diào)用它的客戶類。

  2. 對客戶屏蔽了子系統(tǒng)組件,減少了客戶處理的對象數(shù)目,并使得子系統(tǒng)使用起來更加容易。

  3. 降低了大型軟件系統(tǒng)中的編譯依賴性,簡化了系統(tǒng)在不同平臺之間的移植過程,因?yàn)榫幾g一個(gè)子系統(tǒng)不會影響其他的子系統(tǒng),也不會影響外觀對象。


外觀(Facade)模式的主要缺點(diǎn)如下。

  1. 不能很好地限制客戶使用子系統(tǒng)類,很容易帶來未知風(fēng)險(xiǎn)。

  2. 增加新的子系統(tǒng)可能需要修改外觀類或客戶端的源代碼,違背了“開閉原則”。

外觀(Facade)模式的結(jié)構(gòu)比較簡單,主要是定義了一個(gè)高層接口。它包含了對各個(gè)子系統(tǒng)的引用,客戶端可以通過它訪問各個(gè)子系統(tǒng)的功能?,F(xiàn)在來分析其基本結(jié)構(gòu)和實(shí)現(xiàn)方法。

1. 模式的結(jié)構(gòu)

外觀(Facade)模式包含以下主要角色。

  1. 外觀(Facade)角色:為多個(gè)子系統(tǒng)對外提供一個(gè)共同的接口。

  2. 子系統(tǒng)(Sub System)角色:實(shí)現(xiàn)系統(tǒng)的部分功能,客戶可以通過外觀角色訪問它。

  3. 客戶(Client)角色:通過一個(gè)外觀角色訪問各個(gè)子系統(tǒng)的功能

實(shí)現(xiàn)代碼:(純手打,如果有錯(cuò)誤應(yīng)該問題不大)

首先定義外觀角色:

class Facade{

????private SubSystem1 obj1 = new?SubSystem1();//對子系統(tǒng)1的引用

private?SubSystem2?obj2?= new?SubSystem2();//對子系統(tǒng)2的引用

private?SubSystem3?obj3?= new?SubSystem3();//對子系統(tǒng)3的引用

/**

/*提供訪問子系統(tǒng)功能的接口

*/

public useSys1(){

????obj1.used();

}

public useallSys(){

????obj1.used();

obj2.used();

obj3.used();

}

}

//定義子系統(tǒng)角色

class System1{

used(){

console.log("子系統(tǒng)1的used功能"被調(diào)用);

}

}

class System2{

used(){

console.log("子系統(tǒng)2的used功能"被調(diào)用);

}

}

class System3{

used(){

console.log("子系統(tǒng)3的used功能"被調(diào)用);

}

}

//提供客戶角色通過外觀模式訪問各子系統(tǒng)的功能

class Client1{

????private f:Facade = null;

????constructor(){

????f = new Facade();


}

//調(diào)用方法

usesystem1(){

f.useSys1();

}

}

facade可以通過繼承方式擴(kuò)展,以上代碼為界面純手打,可能有錯(cuò)誤,但邏輯應(yīng)該是對的


設(shè)計(jì)模式:外觀模式(Facade模式)的評論 (共 條)

分享到微博請遵守國家法律
平原县| 平谷区| 闻喜县| 南木林县| 奈曼旗| 扎兰屯市| 乌海市| 曲周县| 定兴县| 墨江| 沙田区| 子长县| 遵义县| 常德市| 平顶山市| 嘉兴市| 邢台县| 安龙县| 日照市| 怀安县| 洱源县| 平武县| 安阳县| 河北省| 平远县| 虎林市| 明水县| 芒康县| 柘荣县| 嘉义市| 泌阳县| 武威市| 广德县| 文山县| 阿城市| 黄冈市| 离岛区| 西吉县| 龙江县| 新泰市| 平武县|