最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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模式)的評論 (共 條)

分享到微博請遵守國家法律
襄汾县| 昌乐县| 会泽县| 新干县| 桃园市| 社会| 临安市| 麟游县| 黔西县| 游戏| 连南| 平安县| 瑞丽市| 莲花县| 香港| 将乐县| 盐津县| 渭南市| 屯昌县| 巨野县| 黄山市| 大英县| 永城市| 嘉义县| 淮滨县| 江城| 太康县| 永清县| 六枝特区| 新蔡县| 临漳县| 阿拉善盟| 阳东县| 新余市| 枣庄市| 嘉善县| 楚雄市| 龙山县| 河曲县| 南宫市| 齐河县|