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