設計模式 結構型模式 外觀模式

2021-10-02 12:43:05 字數 2354 閱讀 3607

組建乙個家庭影院:傳 統方式解決影院管理

clienttest

}傳統方式解決影院管理問題分析

1) 在clienttest 的main方法中,建立各個子系統的物件,並直接去呼叫子系統(物件)相關方法,會造成呼叫過程混亂,沒有清晰的過程

2) 不利於在clienttest 中,去維護對子系統的操作

3) 解決思路:定義乙個高層介面,給子系統中的一組介面提供乙個 一致的介面( 比如在高層介面提供四個方法 ready, play, pause, end ) ,用來訪問子系統中的一群介面

4) 也 就是說 說 就是通過定義乙個一致的介面(介面類),用以遮蔽內部子系統的細節,使得呼叫端只需跟這個介面發生呼叫,而無需關心這個子系統的內部細節 => 外觀模式

外觀模式基本介紹

1) 外觀模式(facade),也叫「過程模式:外觀模式為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用

2) 外觀模式通過定義乙個一致的介面,用以遮蔽內部子系統的細節,使得呼叫端只需跟這個介面發生呼叫,而無需關心這個子系統的內部細節。

原理 類 圖的說明( ( 外觀模式的角色) )

1) 外觀類(facade): 為呼叫端提供統一的呼叫介面, 外觀類知道哪些子系統負責處理請求,從而將呼叫端的請求**給適當子系統物件

2) 呼叫者(client): 外觀介面的呼叫者

3) 子系統的集合:指模組或者子系統,處理facade 物件指派的任務,他是功能的實際提供者。

1) 外觀模式可以理解為轉換一群介面,客戶只要呼叫乙個介面,而不用呼叫多個介面才能達到目的。比如:在pc上安裝軟體的時候經常有一鍵安裝選項(省去選擇安裝目錄、安裝的元件等等),還有就是手機的重啟功能(把關機和啟動合為乙個操作)。

2) 外觀模式就是解決多個複雜介面帶來的使用困難,起到簡化使用者操作的作用。

public class ***player 

public void on()

public void off()

public void play()

//....

public void pause()

}public class hometheate***cade

//操作分成 4 步

public void ready()

public void play()

public void pause()

public void end()

}public class popcorn

public void on()

public void off()

public void pop()

}public class projector

public void on()

public void off()

public void focus()

//...

}public class screen

public void up()

public void down()

}public class stereo

public void on()

public void off()

public void up()

//...

}public class theaterlight

public void on()

public void off()

public void dim()

public void bright()

}public class client

}

外觀模式的注意事項和細節

1) 外觀模式對外遮蔽了子系統的細節,因此外觀模式降低了客戶端對子系統使用的複雜性

2) 外觀模式對客戶端與子系統的耦合關係,讓子系統內部的模組更易維護和擴充套件

3) 通過合理的使用外觀模式,可以幫我們更好的劃分訪問的層次

4) 當系統需要進行分層設計時,可以考慮使用facade模式

5) 在維護乙個遺留的大型系統時,可能這個系統已經變得非常難以維護和擴充套件,此時可以考慮為新系統開發乙個facade類,來提供遺留系統的比較清晰簡單的介面,讓新系統與facade類互動,提高復用性

6) 不能過多的或者不合理的使用外觀模式,使用外觀模式好,還是直接呼叫模組好。要以讓系統有層次,利於維護為目的。

設計模式 結構型模式 外觀模式

粗淺地理解,外觀模式的核心思想就是把分散的方法集中到乙個方法a裡呼叫,外部只需要呼叫a方法就可以把所有的方法都跑一遍,簡單省事。例如上圖的病人看病流程。假設有guahao menzhen huajia quyao 4個方法,如果沒有外觀模式,100個地方用到這個流程,四個方法每個都要各寫100遍呼叫...

結構型模式 外觀模式

外觀模式 facade 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。外觀模式將客戶端與子系統的內部複雜性進行分隔開,使得客戶端只需要與外觀物件打交道,而不需要與子系統內部的很多物件打交道。外觀模式的目的在於減少系統的複雜程度。在物件導向軟體系...

外觀模式 結構型模式

1 基礎知識 定義 提供了乙個統一的介面,用來訪問子系統中的一群介面。特徵 定義了乙個高層介面讓子系統更容易使用 使用場景 子系統複雜,增加外觀模式提供呼叫介面 當構建多層系統時利用外觀物件作為每層的入口簡化層間呼叫。優點 簡化了呼叫過程,無需深入了解子系統 減少系統依賴 鬆散耦合 符合迪公尺特原則...