《Head First 設計模式》 外觀模式

2021-10-23 18:48:43 字數 2312 閱讀 1561

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

要點:

(1)子系統元件a

/**

* 子系統元件a

*/public class componenta

}

(2)子系統元件b
/**

* 子系統元件b

*/public class componentb

}

(3)子系統元件c
/**

* 子系統元件c

*/public class componentc

}

外觀類的方法封裝了子系統元件的一系列方法。這樣,客戶就可以通過外觀類的方法,來一次性呼叫一系列子系統元件的方法。而不是乙個個去呼叫子系統元件的方法。

/**

* 外觀類

*/public class facade

/*** 通過外觀類,請求子系統元件

*/public void request()

}

public class test 

}

不僅如此,看完電影後,你還要把一切都關掉。使用你的家庭影院竟變得如此複雜!於是你決定公升級你的系統……

使用外觀模式將看電影相關的一系列操作,封裝到外觀的 watchmovie() 方法中。這樣一來,要看電影的時候,只需要進行乙個「看電影」的操作就行了。同理,可將看完電影相關的一系列操作,封裝到 endmovie() 方法中。

(1)建立家庭影院子系統元件

/**

* 功放

*/public class amplifier

/*** 關閉功放

*/public void off()

/*** 設定***

*/public void set***(***player ***)

/*** 設定為環繞立體聲

*/public void setsurroundsound()

/*** 調節音量

*/public void setvolume(int volume)

}

/**

*/public class ***player

/***/

public void off()

/***/

public void play(string movie)

/***/

public void stop()

/*** 彈出***

*/public void eject()

}

/**

* 投影儀

*/public class projector

/*** 關閉投影儀

*/public void off()

/*** 設為寬屏模式

*/public void widescreenmode()

}

/**

* 影院燈光

*/public class theaterlights

/*** 調暗燈光

*/public void dim(int level)

}

/**

* 螢幕

*/public class screen

/*** 公升起螢幕

*/public void up()

}

/**

* 爆公尺花機

*/public class popcornpopper

/*** 關閉爆公尺花機

*/public void off()

/*** 開始爆公尺花

*/public void pop()

}

(2)建立家庭影院外觀
/**

* 家庭影院外觀

*/public class hometheate***cade

/*** 看電影

*/public void watchmovie(string movie)

/*** 看完電影

*/public void endmovie()

}

(3)使用家庭影院外觀**電影
public class test 

}

Head First設計模式之外觀模式

外觀模式提供了乙個統一的介面,用來訪問子系統中的一群介面。外觀定義了乙個高層介面,讓子系統更容易使用。外觀模式不只是簡化了介面,也將客戶從元件的子系統中解耦。外觀和介面卡可以包裝許多類,但是外觀強調的是簡化介面,而介面卡是為了將介面轉換成不同的介面。外觀角色 facade 是模式的核心,他被客戶cl...

調侃《Head First設計模式》之外觀模式

看下這些元件的類圖 用 實現就是 這時候你應該很煩了 看個電影要開啟這麼多開關真tm煩!而且看完電影後還要把開關都關一遍,甚至聽cd都很麻煩。怎麼辦呢?解決方案很簡單,你需要的只是增加乙個類將各種開關介面包裝起來。如圖hometheate cade類 hometheate cade對外暴露幾個介面,...

headfirst設計模式

花了一周多一點的時間看完了headfirst的設計模式。看完之後有一種恍然大悟的感覺,仔細想想有覺得自己好像什麼也看懂。簡單說下對這本書的一點感悟吧,headfirst的書比較通俗易懂,之前看了四人幫的設計模式,看一半就有一種痛不欲生的感覺,自己水平有限,看不懂,也就沒在勉強自己了。對於模式其實簡單...