当前位置: 代码迷 >> 综合 >> 门面设计模式(facade)
  详细解决方案

门面设计模式(facade)

热度:36   发布时间:2023-12-06 09:56:36.0

门面设计模式(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();}
}

不错吧?这就是门面设计模式!讲完啦!快不快!还有最后一个!冲鸭!!!!