外觀模式是什么
外觀模式是一種結構性設計模式,它能為程式庫、框架或者其他復雜的子系統提供一個統一的高層界面,使子系統更容易使用,外觀模式就是聚合多個介面實作,對外只暴露單個介面,隱藏子系統的復雜性,呼叫方不關心實作步驟,
為什么要用外觀模式
當子系統提供的功能很多,而我們子需要多個子系統中很少的幾個功能時,這時我們可以用外觀模式,讓我們不必關注與子系統眾多的方法,或者子系統相互呼叫復雜時,外觀模式我們不必清楚子系統中眾多類之間的相互呼叫關系,
外觀模式怎么實作
電腦啟動需要依次啟動電源、主板、CPU、記憶體、硬碟,當然我們也可以用外觀模式封裝一下,把它們都封裝到一起,當然這個例子比較簡單,子系統之間沒有相互呼叫,
package facade
import "fmt"
// 電源
type Power struct{}
func (Power) start() {
fmt.Println("啟動電源,,,")
}
// 主板
type Motherboard struct{}
func (Motherboard) start() {
fmt.Println("啟動主板,,,")
}
// CPU
type CPU struct{}
func (CPU) start() {
fmt.Println("啟動CPU,,,")
}
// 記憶體
type Memory struct{}
func (Memory) start() {
fmt.Println("啟動記憶體管理,,,")
}
// 硬碟
type Disk struct{}
func (Disk) start() {
fmt.Println("啟動硬碟,,,")
}
// 開機鍵
type Computer struct{}
func (Computer) Start() {
new(Power).start()
new(Motherboard).start()
new(CPU).start()
new(Memory).start()
new(Disk).start()
}
優點
- 提高易用性:外觀模式使子系統更容易使用,客戶端更容易使用子系統功能,
- 重點突出,降低復雜度:外觀模式更能體現子系統的核心功能,重點突出,一定程度降低系統整體復雜度,
- 減少依賴:客戶端呼叫外觀模式提供的統一高層界面,比客戶端單獨呼叫眾多子系統減少依賴,降低子系統與呼叫者之間的耦合度,
缺點
- 外觀類可能耦合的類較多,使外觀類變的臃腫,且不易維護,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/447131.html
標籤:設計模式
上一篇:企業應用架構研究系列一:業務拆分
下一篇:設計模式之外觀模式
