要求乙個子系統的外部與其內部的通訊必須通過乙個統一的物件進行。門面模式提供乙個高層次的介面,使得子系統更易於使用。
門面模式注重「統一的物件」,也就是提供乙個訪問子系統的介面,除了這個介面不允許有任何訪問子系統的行為發生
門面模式的類圖
facade是門面角色,此角色知曉子系統的所有功能和責任,一般會將客戶端發來的請求委派到相應的子系統中,沒有實際的業務邏輯 ,只是乙個委託類;
subsystem是子系統角色,可以同時有乙個或者多個子系統,每乙個子系統都不是乙個單獨的類,而是乙個類的集合,子系統並不知道門面的存在,對於子系統而言,門面僅僅是另外乙個客戶端。
備忘錄模式的通用原始碼
子系統
public
class
classa
}
public
class
classb
}
門面物件public
class
classc
}
public
class
facade
public
void
methodb()
public
void
methodc()
}
注意:乙個子系統可以聽多個門面
一般情況下,乙個子系統只需要乙個門面,但當下面情況時需要多個門面
門面不參與子系統的業務邏輯
當門面參與業餘邏輯時,會使的子系統必須依賴門面才能被訪問,違反單一職責原則,也破壞了系統的封裝性
15 門面模式
門面模式 也稱為 外觀模式。要求乙個子系統的外部與內部的通訊必須通過乙個統一的物件進行。門面模式提供乙個高層次的介面,使得子系統更易於使用。門面模式主要有兩部分組成 facade門面角色 客戶端可以呼叫這個角色的方法。此角色知道所有子系統的所有功能和職責。一般情況下,本角色會將所有客戶端發來的請求委...
011 門面模式
8 python與設計模式 門面模式假設有一組火警報警系統,由三個子元件構成 乙個警報器,乙個噴水器,乙個自動撥打 的裝置。其抽象如下 class alarmsensor defrun self print alarm ring.class watersprinker defrun self pri...
(05)門面模式
去醫院看病,可能要去 門診 劃價 取藥,讓患者覺得很複雜。如果有提供接待人員,患者只要和接待員溝通,剩下的交給接待員來處理,這樣就會方便很多。再例如某 展示的資料很多,前端可能呼叫10個介面才能拿到所有首頁的資料。如果後台能前端提供乙個介面,並在該介面中呼叫其他10個介面組裝資料,再把資料返回給前端...