譬如說...有一個動作叫做 "在家觀賞DVD"
你需要做的動作...
- 打開電視
- 打開DVD播放器
- 將電視輸入切換到DVD播放
- 將音量轉成20
- 開始播DVD
在這裡 你就使用到
TV物件
- 打開電視方法
- 切換到DVD播放方法
- 音量轉成20
DVD 物件
- 打開DVD播放器方法
- 開始播DVD方法
--------------------------------------------------------------------------------------------------------------------
轉換成 Java
TV.start();
DVD.start();
TV.setInput(dvd);
TV.setSound(20);
DVD.play(movie);
每看一次DVD你都要寫這麼多程式碼.
也許你會想說,我寫成一個方法就好啦,全部包在裡面,這樣就可以一直呼叫囉.
沒錯!!! 正是要這麼做.
只是我們寫成 "家庭戲院" 類別,這樣可以建立物件跟呼叫使用 "在家觀賞DVD" 方法
// 家庭戲院類別
public class HomeTheaterFacade {
TV tv;
DVD dvd;
// 取得TV、DVD物件,從建構子傳入
public HomeTheaterFacade(TV tv, DVD dvd) {
this.tv = tv;
this.dvd = dvd;
}
// 看電影方法
public void watchMovie(String movie){
tv.start();
dvd.start();
tv.setInput(TV.DVD_mode);
tv.setSound(20);
dvd.play(movie);
}
// 結束電影方法
public void endMovie(){
dvd.stop();
dvd.eject();
dvd.off();
tv.setInput(TV.TV_mode);
tv.off();
}
}
--------------------------------------------------------------------------------------------------------------------
如此一來,你只要執行一個方法就可以"在家觀賞DVD",是不是很方便呢?
沒有留言:
張貼留言