1悉罕、外觀模式(Facade):也叫門面模式笼平,為子系統(tǒng)中的一組接口提供一個一致的界面逸贾,此模式定義了一個高層接口陨仅,這個接口使得這一子系統(tǒng)更加容易使用。
2铝侵、UML結(jié)構(gòu)圖
Facade類:外觀類灼伤,它需要了解所有的子系統(tǒng)的方法或?qū)傩裕M(jìn)行組合咪鲜,以備外界調(diào)用
SubSystem:子系統(tǒng)類集合狐赡,實(shí)現(xiàn)子系統(tǒng)的功能,處理Facade對象指派的任務(wù)疟丙,注意子類中沒有任何Facade的任何信息颖侄,即沒有對Facade對象的引用
3、適用場景
(1)在設(shè)計(jì)初期階段享郊,應(yīng)該要有意識的將不同的兩個層分離览祖,比如在數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表示層的層與層之間建立外觀模式
(2)在開發(fā)階段炊琉,子系統(tǒng)往往因不斷的重構(gòu)演化而變得越來越復(fù)雜展蒂,增加外觀類可以提供一個簡單的接口,減少它們之間的依賴
(3)在維護(hù)一個遺留系統(tǒng)時苔咪,由于系統(tǒng)龐大難以維護(hù)和擴(kuò)展锰悼,有新的需求時,可以增加一個外觀類悼泌,讓外觀類與遺留子系統(tǒng)交互? ? ? ? ? ? ? ? ? ?所有復(fù)雜的工作?
4松捉、代碼案例
Facade類
SubSystemA類
SubSystemB