設計模式 外觀模式

2021-08-17 03:02:44 字數 1635 閱讀 3639

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

場景:有乙個家庭影院,裡面有爆公尺花機,投影,***機,音響等,然後等我們要開始享觀賞電影的時候,我們不得不執行開啟爆公尺花機,開始爆公尺,關閉爆公尺花機,關閉燈,放在投影....等等一系列操作,然後觀賞完電影,還有在關閉這些東西,這多累人啊。這時候,我們就可以利用外觀模式,提供乙個合理的介面的外觀類,讓你只需一鍵完成一系列操作。下面我們看下**的實現

首先我們建立一系列子系統

//

爆公尺花類

public

class

popper

public

void

pop()

public

void

off()}//

電燈類public

class

light

public

void

off()}//

投影類public

class

projector

public

void

close()}//

音響類public

class

stereo

public

void

off()

public

void

set***()

public

void

setsurroundsound()}//

***類

public

class

***

public

void

play()

public

void

off()

public

void

remove***()}//

螢幕類public

class

screen

public

void

down()

}

接著我們建立乙個外觀模式的介面

//

設定乙個介面homemoviefacade來連線客戶和元件(音響、***)之間的操作

public

class

homemoviefacade

//開始享受家庭影院,這方法將我們之前每次需要手動處理的任務都交給子系統處理了。

public

void

watchmovie(string movie)

//享受完關閉影院

public

void

endmovie()

}

最後我們來進行測試,也就是客戶類

public

class

test

}

下面是執行的結果

好了,這就是乙個簡單的外觀模式的使用範例了。最後說下裝飾者、介面卡、外觀這三個模式的區別。裝飾者意圖是不改變介面,但加入責任,介面卡是將乙個介面轉成另乙個介面,而外觀是為了讓介面更簡單。

下一節:模板方法模式

設計模式 外觀模式

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

設計模式 外觀模式

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

設計模式 外觀模式

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