設計模式之外觀模式

2022-09-23 11:48:08 字數 1171 閱讀 6822

外觀模式(facade)

定義:為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。

舉例:新股民在沒有足夠了解證劵知識的情況下去做**,很容易虧錢,畢竟其不具備**的相關知識。然而,如果股民將資金交由專業的經理人進行管理,那就不需要參與**的具體買和賣,完全由**公司完成即可。

投資****如下:

namespace _12._3_投資****

//買**

public void buy()

}//**2

class stock2

//買**

public void buy()

}//**3

class stock3

//買**

public void buy()

}//國債1

class nationaldebt1

//買國債

public void buy()

}//房地產1

class realty1

//買房地產

public void buy()

}//**類如下

//**類,它需要了解所有的**或其他投資方式的方法或屬性,進行組合,以備外界呼叫。

class fund

public void buyfund()

public void sellfund()

}//客戶端如下

//此時使用者不需要了解**,甚至可以對**一無所知,買了**就回家睡覺,一段時間後再贖回就可以大把數錢。參與**的具體買賣都由**公司完成。

class program

}}外觀模式優點和缺點:

優點:(1) 它對客戶端遮蔽了子系統元件,減少了客戶端所需處理的物件數目,並使得子系統使用起來更加容易。通過引入外觀模式,客戶端**將變得很簡單,與之關聯的物件也很少。

(2) 它實現了子系統與客戶端之間的松耦合關係,這使得子系統的變化不會影響到呼叫它的客戶端,只需要調整外觀類即可。

(3) 乙個子系統的修改對其他子系統沒有任何影響,而且子系統內部變化也不會影響到外觀物件。

缺點:(1) 不能很好地限制客戶端直接使用子系統類,如果對客戶端訪問子系統類做太多的限制則減少了可變性和靈活 性。

(2) 如果設計不當,增加新的子系統可能需要修改外觀類的源**,違背了開閉原則。

設計模式之外觀模式

外觀模式提供了乙個統一的介面,用來訪問子系統中的一群介面。這樣可以避免客戶端和子系統之間的緊耦合。這種模式需要將一系列的子系統組合到外觀中,然後將具體的工作交給各個子系統去完成。如此一來,可以簡化介面的呼叫。其本質就是將系統與客戶端互動的地方封裝起來。這個模式,總體來說,很簡單,理解起來也不困難。依...

設計模式之外觀模式

外觀模式 為子系統中的一組介面提供乙個一直的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。即通過乙個中類來完成客戶端的請求。拿機房收費系統的上機過程來說,上機需要顯示上機者的資訊,填寫上機狀態表,填寫上機記錄表。而使用者不需要知道這些功能是怎麼實現的,只需要通過介面操作就可以完...

設計模式之外觀模式

外觀模式,為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。在設計初期階段,應該要有意識的將不同的兩個層分離,比如經典的三層架構,層與層之間建立外觀facade。在開發階段,子系統往往因不斷的重構演化而變得越來越複雜,增加外觀模式可以提供乙個簡單的...