為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。
1.uml類圖:
2.**實現:
//四個子系統的類
class subsystemone
}class subsystemtwo
}class subsystemthree
}class subsystemfour
}
//外觀類
class faced
public
void
methoda()
public
void
methodb()
}
客戶端:
class
program
}
輸出:子系統方法一
子系統方法二
子系統方法三
子系統方法四
分為三個階段:
首先在設計初期階段,應該要有意思的將不同的兩個層分離,比如經典的三層架構,就需要考慮資料訪問層、業務邏輯層和表示層的層與層之間建立外觀,這樣可以為複雜的子系統提供簡單的介面,使得耦合大大降低。
其次,在開發階段,子系統往往因為不斷的重構演化而變得越來越複雜,大多數的模式在使用時也會產生很多很小的類,這本是好事,但也給外部呼叫他們的使用者程式帶來了使用上的困難,增加外觀faced可以提供乙個簡單的介面,減少他們之間的依賴。
第三,在維護乙個遺留的大型系統時,可能這個系統已經難以維護和擴充套件了,但因為他含有非常重要的功能,新的開發需求要依賴它。此時用外觀模式也是非常合適的。你可以為新系統開發乙個外觀類,來提供設計粗糙或高度複雜的遺留**比較清晰簡單的介面,讓新系統與faced物件互動,faced與遺留**互動所有複雜的工作。
設計模式之外觀模式
外觀模式提供了乙個統一的介面,用來訪問子系統中的一群介面。這樣可以避免客戶端和子系統之間的緊耦合。這種模式需要將一系列的子系統組合到外觀中,然後將具體的工作交給各個子系統去完成。如此一來,可以簡化介面的呼叫。其本質就是將系統與客戶端互動的地方封裝起來。這個模式,總體來說,很簡單,理解起來也不困難。依...
設計模式之外觀模式
外觀模式 為子系統中的一組介面提供乙個一直的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。即通過乙個中類來完成客戶端的請求。拿機房收費系統的上機過程來說,上機需要顯示上機者的資訊,填寫上機狀態表,填寫上機記錄表。而使用者不需要知道這些功能是怎麼實現的,只需要通過介面操作就可以完...
設計模式之外觀模式
外觀模式,為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。在設計初期階段,應該要有意識的將不同的兩個層分離,比如經典的三層架構,層與層之間建立外觀facade。在開發階段,子系統往往因不斷的重構演化而變得越來越複雜,增加外觀模式可以提供乙個簡單的...