1. 程式人生 > 實用技巧 >外觀模式 一鍵電影模式

外觀模式 一鍵電影模式

轉載請標明出處:http://blog.csdn.net/lmj623565791/article/details/25837275

這個模式比較簡單,嘿嘿,簡單寫一下。

老樣子,先看外觀模式(Facade Pattern)定義:提供一個統一的介面,用來訪問子系統中的一群介面,外觀定義了一個高層的介面,讓子系統更容易使用。其實就是為了方便客戶的使用,把一群操作,封裝成一個方法。

舉個例子:我比較喜歡看電影,於是買了投影儀、電腦、音響、設計了房間的燈光、買了爆米花機,然後我想看電影的時候,我需要:

1、開啟爆米花機

2、製作爆米花

3、將燈光調暗

4、開啟投影儀

5、放下投影儀投影區

6、開啟電腦

7、開啟播放器

8、將播放器音調設為環繞立體聲

...

尼瑪,花了一筆錢,看電影還要這麼多的步驟,太累了,而且看完還要一個一個關掉。

所有,我們使用外觀模式解決這些複雜的步驟,輕鬆享受電影:

package com.zhy.pattern.facade;
 
public class HomeTheaterFacade
{
    private Computer computer;
    private Player player;
    private Light light;
    private Projector projector;
    private PopcornPopper popper;
 
    
public HomeTheaterFacade(Computer computer, Player player, Light light, Projector projector, PopcornPopper popper) { this.computer = computer; this.player = player; this.light = light; this.projector = projector; this.popper = popper; } public void
watchMovie() { /** * 1、開啟爆米花機 2、製作爆米花 3、將燈光調暗 4、開啟投影儀 5、放下投影儀投影區 6、開啟電腦 7、開啟播放器 8、將播放器音調設為環繞立體聲 */ popper.on(); popper.makePopcorn(); light.down(); projector.on(); projector.open(); computer.on(); player.on(); player.make3DListener(); } public void stopMovie() { popper.off(); popper.stopMakePopcorn(); light.up(); projector.close(); projector.off(); player.off(); computer.off(); } }

可以看到,我們定義了一個類,然後可以讓我一鍵享受看電影了,看完,一鍵關閉,享受多了。

外觀模式:一般用於需要簡化一個很大的介面,或者一群複雜的介面的時候。

這個模式比較容易理解,就不多說了,最後附上類圖:

好了,恭喜你,你又學會了一個設計模式,外觀模式(Facade Pattern)。