HeadFast設計模式之外觀模式

2021-10-23 14:33:11 字數 1194 閱讀 8727

外觀模式就是建立乙個簡化的介面,實現複雜的功能。實現的原理是在簡單的介面內呼叫了複雜的介面。

比如說,晚上回到家,正常流程要先開啟門,開啟燈,開啟空調。 但是我們比較懶,想要一鍵就把門、燈、空調開啟了,這個時候就需要乙個東西,當我們呼叫它的時候,它可以依次呼叫開門,開燈,開空調的功能。這個「東西」,可以理解為外觀模式

通過提供乙個統一的介面,用來訪問子系統中的一群介面,從而實現一鍵式傻瓜呼叫。

簡化了介面

將客戶從複雜的子系統中解耦出來

外觀模式的意圖是簡化子系統介面,而介面卡模式的意圖是轉換介面

建立基礎模組
public

class

light

public

void

off(

)}

public

class

door

public

void

off(

)}

public

class

aircondition

public

void

off(

)}

建立外觀模組
public

class

facadecontroller

public

facadecontroller

(light light, door door, aircondition aircondition)

// 同一開按鈕

public

voidon(

)// 統一關按鈕

public

void

off(

)}

建立測試demo
public

class

testdemo

}

如上面**所示,外觀模式不是隱藏了子系統的介面,而是對子系統多介面進行了整合,暴露給使用者乙個更簡單的藉口,原來子系統的介面還是可以訪問的。

使用外觀模式,可以更方便使用者使用子系統功能,讓使用者不用關心子系統是怎麼實現的,只要知道呼叫這個介面會顯現什麼功能就可以了。

設計模式之外觀模式

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

設計模式之外觀模式

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

設計模式之外觀模式

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