一:
???? 一個看dvd的例子:通常做法:先調節燈光,調節屏幕,調節投影儀,調節功放,然后才是開DVD.
????

light.dim(10);

screen.down();

projector.on();
projector.setInput(dvd);

amp.on();
amp.setVolume(5);

dvd.on();
dvd.playMovie();??? 這其實是一個比較普通的完整需求,這確涉及到五六個類,如果直接給這樣的接口給client,十分不方便,我們應該根據需求,把細節包裝起來,直接提供一個showMovie(包裝以上實現)的方法給客戶端。
? The Facade Pattern provides a unified interface to a set of interfaces?in a?subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.?
? when:
?1.為一個復雜子系統提供一個簡單接口
?? (1:用一個方法包裝不同類的多個方法。2:把一個邏輯模塊類接口集中到一個類)
?2.子系統的獨立性,將一個子系統與它的客戶端以及其它子系統分開,可提高子系統的獨立性和可移植性
?3.? 層次化結構,簡化層與層直接的依賴關系。