外觀模式 Facade Pattern

2021-09-27 21:00:37 字數 1781 閱讀 7001

外觀模式提供了乙個統一的介面,用來訪問子系統中的一群介面。外觀定義了乙個高層介面,讓子系統更容易使用。

看個例子

一台電腦的開機,需要經過bios load,主引導記錄mbr,硬碟啟動…每一步都是乙個複雜的子系統。然而我們的使用者在開機的時候,肯定不會是自己一步一步這樣開機,只會按乙個開機鍵。開機鍵就是封裝開機的所有必須經過的步驟。

設計原則

最少知識原則:只和你的密友談話

就任何物件而言,在改物件的方法內,我們只應該呼叫屬於以下範圍的方法:

// 沒有用原則,這裡從氣象站取得了溫度計物件,然後再從溫度計物件取得溫度

func

gettemp()

float64

// 採用原則,這裡在氣象站 中加進乙個方法,用來想溫度計請求溫度。這可以減少我們所依賴的類的書目

func

gettemp()

float64

type car struct

func

(c *car)

start

(key key)

}func

(c *car)

updatedashboarddisplay()

意圖

封裝監護,簡化呼叫

範例**

type cpu struct

func

(this *cpu)

freeze()

func

(this *cpu)

jump

(position int64

)func

(this *cpu)

execute()

type memory struct

func

(this *memory)

load

(position int64

, data [

]byte

)type harddrive struct

func

(this *harddrive)

read

(lba int64

, size int64)[

]byte

type computer struct

func

newcomputer()

*computer

}func

(this *computer)

start()

func

main()

package computer

import

"system"

var cpu *system.cpu

var memory *system.memory

var harddrive *system.harddrive

func

init()

func

start()

import

"computer"

...computer.

start

()

總結

設計模式 外觀模式

外觀模式,我的理解就是將複雜的類進行重新封裝,將簡單的介面呈現出來,降低呼叫端和實際類的耦合性。拿 大話設計模式 上邊關於 和 的例子來說。對於不入門的股民來說,交易有些過於龐大,需要學習的東西很多,如果沒整明白就進行投資,很容易賠錢的。很多剛入 的股民都賠的很慘。而買 有提出了乙個新的觀念,我們買...

設計模式 外觀模式

何為外觀模式?外觀模式 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得一子系統更加容易使用。它是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和 各子系統的演化,這種過多的耦合面臨很多變化的挑戰。uml類圖 乙個...

設計模式 外觀模式

外觀模式說白了就是為一組介面提供乙個一致的介面。例如 定義三個類a b c,每個類各定義乙個方法。class a pubic void showa cout a showa pubic void showb cout b showb pubic void showc cout c showc 定義乙...