国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

分享到微博請遵守國家法律
通化县| 土默特右旗| 上饶市| 宣恩县| 崇阳县| 蓬安县| 拉孜县| 岑巩县| 洛阳市| 金华市| 乐亭县| 霍邱县| 略阳县| 安阳县| 黄浦区| 山西省| 罗源县| 襄城县| 永春县| 商丘市| 井研县| 盐山县| 太康县| 万山特区| 威海市| 米脂县| 辽阳市| 新津县| 资阳市| 垦利县| 滦平县| 砀山县| 大丰市| 通州区| 保定市| 高阳县| 江达县| 乐山市| 香河县| 阜新| 婺源县|