Java結構型模式之門面模式詳解
一.介紹
門面模式(Facade Pattern)屬于結構型模式。門面模式又叫作外觀模式,通過給多個復雜的子系統(tǒng)提供一個門面(高層接口),使這些子系統(tǒng)更加容易的被訪問,客戶端與門面直接通信,封裝/隱藏背后子系統(tǒng)的細節(jié)與復雜度
二.UML類圖
未使用門面模式

使用門面模式

三.具體代碼
業(yè)務代碼
class Facade {
private SubSystem1 subSystem1 = new SubSystem1();
private SubSystem2 subSystem2 = new SubSystem2();
private SubSystem3 subSystem3 = new SubSystem3();
public void doSomething(){
subSystem1.operation1();
subSystem2.operation2();
subSystem3.operation3();
}
}
class SubSystem1 {
void operation1(){}
}
class SubSystem2 {
void operation2(){}
}
class SubSystem3 {
void operation3(){}
}
客戶端
public class Client {
private static Facade facade = new Facade();
public static void main(String[] args) {
facade.doSomething();
}
}
四.使用場景
1.繼承第三方系統(tǒng)
- 當一個復雜系統(tǒng)的子系統(tǒng)很多時,門面模式可以為系統(tǒng)設計一個簡單的接口供外界訪問
- 當客戶端與多個子系統(tǒng)之間存在很大的聯(lián)系時,引入門面模式可將它們分離,從而提高子系統(tǒng)的獨立性和可移植性
2.組件對外提供API
- 簡化組件調用API,提供統(tǒng)一訪問接口
3.分層架構層之間調用
- 對分層結構系統(tǒng)構建時,使用門面模式定義子系統(tǒng)中每層的入口點可以簡化子系統(tǒng)之間的依賴關系
五.優(yōu)缺點
優(yōu)點
- 遵循迪米特法則
- 降低耦合度,屏蔽子系統(tǒng)組件,減少調用端代碼量
缺點
- 違背開閉原則,如果修改子系統(tǒng)的代碼,需要修改Facade的代碼
六.在tomcat中的應用
org.apache.catalina.connector.RequestFacade
到此這篇關于Java結構型模式之門面模式詳解的文章就介紹到這了,更多相關Java門面模式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java并發(fā)LinkedBlockingQueue源碼分析
這篇文章主要為大家介紹了Java并發(fā)LinkedBlockingQueue源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
關于Java利用反射實現(xiàn)動態(tài)運行一行或多行代碼
這篇文章主要介紹了關于Java利用反射實現(xiàn)動態(tài)運行一行或多行代碼,借鑒了別人的方法和書上的內容,最后將題目完成了,和大家一起分享以下解決方法,需要的朋友可以參考下2023-04-04
Java?18?新特性之Web服務器?jwebserver功能
JEP?408:?Simple?Web?Server,是這次Java?18推出的一個比較獨立的全新功能點。我們可以通過命令行工具來啟動一個提供靜態(tài)資源訪問的迷你Web服務器,本文通過一個構建HTML頁面的例子,來嘗試一下jwebserver的功能2022-04-04
spring boot環(huán)境抽象的實現(xiàn)方法
在實際開發(fā)中,開發(fā)人員在編寫springboot的時候通常要在本地環(huán)境測試然后再部署到Production環(huán)境,這兩種環(huán)境一般來講是不同的,最主要的區(qū)別就是數(shù)據(jù)源的不同。本文主要介紹了這兩種,感興趣的可以了解一下2019-04-04

