门面设计模式(facade)
这个贼鸡儿简单,快看两眼,这是我介绍的最后两个设计模式了!坚持,成功一定是属于你的!
这个设计模式叫个啥?门面设计模式??这又是什么玩意(消音ing),好了好了我举个例子你就知道了:这里咱们来到了一家奢侈品专柜,里面都是价值连城的宝贝,这么好的宝贝肯定不能让贼盯上啊,怎么办呢?懂了!来个安防系统吧!先不管三七二十一丁玲桄榔安装上摄像头,安装上报警器,安装上传感器:
public class Camera {
public void on(){
System.out.println("摄像机已经启动!");}public void off(){
}
}
public class Alarm {
public void active(){
System.out.println("报警系统已经启动!");}
}
public class Sensor {
public void active(){
System.out.println("传感器已经启动!");}
}
这里大家可以自由发挥,我只写了开启的方法,关闭的方法我就没写,不过只开不关是有点奇葩啊哈哈哈哈
我现在是这样想的,我总不能一个个开吧,太麻烦了吧,我需要一个按钮,一键启动,这样多方便了,于是说干就干,想个方法整合一下,哎呦喂!这不就是门面设计模式嘛!看看我怎么写的:
public class SecurityFacade {
private Alarm alarm;private Sensor sensor;private Camera camera;public SecurityFacade(){
alarm = new Alarm();sensor = new Sensor();camera = new Camera();}public void init(){
//总调度alarm.active();sensor.active();camera.on();}
}
是不是以为我要全写到主函数里哈哈哈哈哈哈,好了不逗你了,看看这个门面设计模式,首先映入眼帘的就是构造函数的实例化过程,当你实例化成功之后,其中包含的摄像头,传感器,报警器也就同时开始了他们的生命周期。然后写一个方法init,作为一个总调度方法,开启整个系统。
这样你可以想到,在主函数里面,就可以直接调用这个方法就可以了。很简洁很奈斯。所以让我们看一眼主函数是个什么样:
public class Client {
public static void main(String[] args) {
SecurityFacade facade = new SecurityFacade();facade.init();}
}
不错吧?这就是门面设计模式!讲完啦!快不快!还有最后一个!冲鸭!!!!