前言
本節複習結構型設計模式中的外觀模式。外觀模式也稱門面模式。
外觀模式的定義:外觀模式提供了乙個統一的介面,用來訪問子系統紅的一群介面。外觀定義了乙個高層介面,讓子系統更容易使用。
**實現
// 子系統 phone 提供在手機上買火車票的介面
public class phone
}
// 子系統 car 提供從租住地到車站的功能
public class car
}
// 子系統 bus 提供 坐公交從車站到家的功能
public class bus
}
// 提供給客戶端的外觀
public class facade
// 對外部提供從租住地一路回家的介面。不必關心具體實現
public void gohome()
}
// 外觀測試類
外觀模式不僅簡化了介面,也將客戶從子系統中解耦出來。外觀模式的意圖是簡化介面,讓客戶使用子系統更加的方便。當然你也可以為客戶提供多個外觀簡化子系統。
外觀模式更加體現了多用組合,少用繼承這一oo原則以及松耦合。
外觀模式也體現了最少知識原則(迪公尺特法則):只和你的密友談話。客戶不用知道外觀裡面的子系統,只需要用外觀提供的介面就好,不用管外觀通過那些子系統實現的。
references
設計模式之外觀模式
外觀模式提供了乙個統一的介面,用來訪問子系統中的一群介面。這樣可以避免客戶端和子系統之間的緊耦合。這種模式需要將一系列的子系統組合到外觀中,然後將具體的工作交給各個子系統去完成。如此一來,可以簡化介面的呼叫。其本質就是將系統與客戶端互動的地方封裝起來。這個模式,總體來說,很簡單,理解起來也不困難。依...
設計模式之外觀模式
外觀模式 為子系統中的一組介面提供乙個一直的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。即通過乙個中類來完成客戶端的請求。拿機房收費系統的上機過程來說,上機需要顯示上機者的資訊,填寫上機狀態表,填寫上機記錄表。而使用者不需要知道這些功能是怎麼實現的,只需要通過介面操作就可以完...
設計模式之外觀模式
外觀模式,為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。在設計初期階段,應該要有意識的將不同的兩個層分離,比如經典的三層架構,層與層之間建立外觀facade。在開發階段,子系統往往因不斷的重構演化而變得越來越複雜,增加外觀模式可以提供乙個簡單的...