设计模式:外观模式(Facade Pattern)
?
外观模式
外观模式又叫门面模式,提供一个统一的接口,来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
?
?
这里我们使用观看电影的实例,我们假设观看一部影片(watchMovie())的步骤:1.投影开2.幕布放下3.DVD播放4.音响打开;结束放映(closed())的操作应该是反过来的
?
实践步骤:
1>我们新建一个投影机(Diascope)类、幕布(Curtain)类、DVD类、音响(Sounder)类
?
package com.kaishengit.facade;public class Test {public static void main(String[] args) {Facade facade = new Facade(new Diascope(), new Curtain(), new Dvd(), new Sounder());facade.watchMovie();//观看放映//facade.closed();//结束放映}}?
?运行结果:
-------------------------------
投影开
幕布放下
DVD播放
音响打开
-------------------------------
?
?
关于外观模式
1>当需要简化并统一一个很大的接口或者一群复杂的接口时,应该使用外观模式
2>外观将客户从一个复杂的子系统中解耦
3>实现一个外观,需要将子系统组合进外观中,然后将工作委托给子系统完成
4>你可以为子系统实现一个以上的外观
5>适配器模式重点在于转换,外观模式重点在于简化
?
?
-------end-----------