av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

這一定是你經(jīng)常用,但是不知道名字的設(shè)計模式

1.什么是門面模式?

門面模式(Facade Pattern):也叫外觀模式,要求一個子系統(tǒng)的外部與其內(nèi)部的通信必須通過一個統(tǒng)一的對象進行。門面模式提供一個高層次的接口,使得子系統(tǒng)更易于使用。

說人話:假設(shè)有一個系統(tǒng) A,提供了 a、b、c、d 四個接口。系統(tǒng) B 完成某個業(yè)務(wù)功能,需要調(diào)用 A 系統(tǒng)的 a、b、d 接口。利用門面模式,我們提供一個包裹 a、b、d 接口調(diào)用的門面接口 x,給系統(tǒng) B 直接使用。至于為什么要這樣做,下文會告訴你。

2.門面模式定義

①Facade 門面角色

此角色知曉子系統(tǒng)的所有功能和責(zé)任,客戶端可以調(diào)用這個角色的方法,會將所有從客戶端發(fā)來的請求委派到相應(yīng)的子系統(tǒng)去, 也就說該角色沒有實際的業(yè)務(wù)邏輯,
只是一個委托類。

②Subsystem 子系統(tǒng)角色

可以同時有一個或者多個子系統(tǒng)。每一個子系統(tǒng)都不是一個單獨的類, 而是一個類的集合。子系統(tǒng)并不知道門面的存在。對于子系統(tǒng)而言,
門面僅僅是另外一個客戶端而已。

3.門面模式通用代碼實現(xiàn)

/**
* 子系統(tǒng)A
*/
public class ClassA {
public void doA(){
System.out.println("子系統(tǒng)A方法");
}
}
/**
* 子系統(tǒng)B
*/
public class ClassB {
public void doB(){
System.out.println("子系統(tǒng)B方法");
}
}
/**
* 子系統(tǒng)C
*/
public class ClassC {
public void doC(){
System.out.println("子系統(tǒng)C方法");
}
}
/**
* 門面角色
*/
public class Facade {
private ClassA a = new ClassA();
private ClassB b = new ClassB();
private ClassC c= new ClassC();

// 提供給外部訪問的方法
public void doSomething(){
this.a.doA();
this.b.doB();
this.c.doC();
}
}

看上去,沒有門面角色,我們自己去調(diào)用三個子系統(tǒng)的方法也是一樣,但是假如三個子系統(tǒng)之間有先后順序,還有來自不同網(wǎng)絡(luò)開銷,我們通過門面模式提供的方法,就屏蔽了這些差異,讓我們只需要調(diào)用門面角色提供給我們的方法即可。

4.門面模式優(yōu)點

①減少系統(tǒng)的相互依賴

如果我們不使用門面模式, 外界訪問直接深入到子系統(tǒng)內(nèi)部, 相互之間是一種強耦合關(guān)系, 你死我就死, 你活我才能活, 這樣的強依賴是系統(tǒng)設(shè)計所不能接受的,
門面模式的出現(xiàn)就很好地解決了該問題, 所有的依賴都是對門面對象的依賴, 與子系統(tǒng)無關(guān)。

②提高安全性

想讓你訪問子系統(tǒng)的哪些業(yè)務(wù)就開通哪些邏輯, 不在門面上開通的方法, 你休想訪問到。

5.門面模式應(yīng)用場景

①解決易用性問題

門面模式可以用來封裝系統(tǒng)的底層實現(xiàn),隱藏系統(tǒng)的復(fù)雜性,提供一組更加簡單易用、更高層的接口。

②解決性能問題

通過將多個接口調(diào)用替換為一個門面接口調(diào)用,減少網(wǎng)絡(luò)通信成本,提高客戶端的響應(yīng)速度。

③解決分布式事務(wù)問題

需要調(diào)用多個子系統(tǒng)的接口方法,而這些接口要么都成功,要么都失敗,我們就可以利用門面模式包裹這些子系統(tǒng)接口,然后通過某種方法保證這些接口在一個事務(wù)中完成。

6.適配器模式和門面模式區(qū)別

適配器模式:主要做接口轉(zhuǎn)換,解決的是原接口和目標接口不匹配的問題。門面模式:主要做接口整合,解決的是多接口調(diào)用帶來的問題。


新聞名稱:這一定是你經(jīng)常用,但是不知道名字的設(shè)計模式
分享路徑:http://uogjgqi.cn/article/coeiodd.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流