• java: Facade Pattern


    /**
     * 版权所有 2022 涂聚文有限公司
     * 许可信息查看:
     * 描述:
     * 门面模式 Facade Patterns
     * 历史版本: JDK 14.02
     * 2022-09-12 创建者 geovindu
     * 2022-09-12 添加 Lambda
     * 2022-09-12 修改:date
     * 接口类
     * 2022-09-12 修改者:Geovin Du
     * 生成API帮助文档的指令:
     *javadoc - -encoding Utf-8 -d apidoc Camera.java
     *
     * */
    
    
    
    package com.javapatterns.facade;
    
    /**
     *录像
     * @author geovindu  Geovin Du 涂聚文
     *
     * */
    public class Camera {
    
    
        /*
        public  Camera()
        {
    
        }*/
        /**
         *
         *打开录像机
         * */
        public void turnOn()
        {
            System.out.println("Turning on the camera.");
        }
        /**
         *关闭录像机
         *
         * */
        public void turnOff()
        {
            System.out.println("Turning off the camera.");
        }
        /**
         *转动录像机
         *
         * */
        public void rotate(int degrees)
        {
            System.out.println("Rotating the camera by " + degrees + " degrees.");
        }
    }
    

      

    /**
     * 版权所有 2022 涂聚文有限公司
     * 许可信息查看:
     * 描述:
     * 门面模式 Facade Patterns
     * 历史版本: JDK 14.02
     * 2022-09-12 创建者 geovindu
     * 2022-09-12 添加 Lambda
     * 2022-09-12 修改:date
     * 接口类
     * 2022-09-12 修改者:Geovin Du
     * 生成API帮助文档的指令:
     *javadoc - -encoding Utf-8 -d apidoc Alarm.java
     *
     * */
    
    
    package com.javapatterns.facade;
    /**
     *警报器
     * @author geovindu   Geovin Du 涂聚文
     * */
    public class Alarm {
    
    
       /*
        public  Alarm()
        {
    
        }
    */
    
        /**
         *启动警报器
         *
         * */
        public void activate()
        {
            System.out.println("Activating the alarm.");
        }
        /**
         *关闭警报器
         *
         * */
        public void deactivate()
        {
            System.out.println("Deactivating the alarm.");
        }
        /**
         *拉响警报器
         *
         * */
        public void ring()
        {
            System.out.println("Ring the alarm.");
        }
        /**
         *停掉警报器
         *
         * */
        public void stopRing()
        {
            System.out.println("Stop the alarm.");
        }
    
    }
    

      

    /**
     * 版权所有 2022 涂聚文有限公司
     * 许可信息查看:
     * 描述:
     * 门面模式 Facade Patterns
     * 历史版本: JDK 14.02
     * 2022-09-12 创建者 geovindu
     * 2022-09-12 添加 Lambda
     * 2022-09-12 修改:date
     * 接口类
     * 2022-09-12 修改者:Geovin Du
     * 生成API帮助文档的指令:
     *javadoc - -encoding Utf-8 -d apidoc Light.java
     *
     * */
    
    package com.javapatterns.facade;
    /**
     *灯
     * @author geovindu   Geovin Du 涂聚文
     * */
    public class Light {
    
    /*
        public  Light()
        {
    
        }*/
        /**
         *打开灯
         *
         * */
        public void turnOn()
        {
            System.out.println("Turning on the light.");
        }
        /**
         *关闭灯
         *
         * */
        public void turnOff()
        {
            System.out.println("Turning off the light.");
        }
        /**
         *换灯泡
         *
         * */
        public void changeBulb()
        {
            System.out.println("Changing the light-bulb.");
        }
    
    }
    

      

    /**
     * 版权所有 2022 涂聚文有限公司
     * 许可信息查看:
     * 描述:
     * 门面模式 Facade Patterns
     * 历史版本: JDK 14.02
     * 2022-09-12 创建者 geovindu
     * 2022-09-12 添加 Lambda
     * 2022-09-12 修改:date
     * 接口类
     * 2022-09-12 修改者:Geovin Du
     * 生成API帮助文档的指令:
     *javadoc - -encoding Utf-8 -d apidoc Sensor.java
     *
     * */
    
    package com.javapatterns.facade;
    /**
     *感应器
     * @author geovindu   Geovin Du 涂聚文
     * */
    public class Sensor {
    
    
    /*
        public  Sensor()
        {
    
        }*/
        /**
         *启动感应器
         *
         * */
        public void activate()
        {
            System.out.println("Activating on the sensor.");
        }
        /**
         *关闭感应滴
         *
         * */
        public void deactivate()
        {
            System.out.println("Deactivating on the sensor.");
        }
        /**
         *触发感应器
         *
         * */
        public void trigger()
        {
            System.out.println("The sensor has been triggered.");
        }
    
    }
    

     

    /**
     * 版权所有 2022 涂聚文有限公司
     * 许可信息查看:
     * 描述:
     * 门面模式  外观模式 Facade Patterns
     * 历史版本: JDK 14.02
     * 2022-09-12 创建者 geovindu
     * 2022-09-12 添加 Lambda
     * 2022-09-12 修改:date
     * 接口类
     * 2022-09-12 修改者:Geovin Du
     * 生成API帮助文档的指令:
     *javadoc - -encoding Utf-8 -d apidoc SecurityFacade.java
     *
     * */
    
    package com.javapatterns.facade;
    /**
     *门面类
     * @author geovindu   Geovin Du 涂聚文
     * */
    public class SecurityFacade {
    
        /**
         * @directed*/
        private Camera camera1, camera2;
    
        /**
         * @directed
         */
        private Light light1, light2, light3;
    
        /**
         * @directed*/
        private Sensor sensor;
    
        /**
         * @directed*/
        private Alarm alarm;
        /**
         *构造
         *
         * */
         public  SecurityFacade()
         {
             camera1=new Camera();
             camera2=new Camera();
             light1=new Light();
             light2=new Light();
             light3=new Light();
             sensor=new Sensor();
             alarm=new Alarm();
         }
        /**
         *启动
         *
         * */
        public void activate()
        {
            camera1.turnOn();
            camera2.turnOn();
    
            light1.turnOn();
            light2.turnOn();
            light3.turnOn();
    
            sensor.activate();
    
            alarm.activate();
        }
        /**
         *关闭
         *
         * */
        public void deactivate()
        {
            camera1.turnOff();
            camera2.turnOff();
    
            light1.turnOff();
            light2.turnOff();
            light3.turnOff();
    
            sensor.deactivate();
    
            alarm.deactivate();
        }
    
    
    }
    

      

    调用测试:

                //门面模式
                security=new SecurityFacade();
                security.activate();
    

      

    输出:

    Turning on the camera.
    Turning on the camera.
    Turning on the light.
    Turning on the light.
    Turning on the light.
    Activating on the sensor.
    Activating the alarm.
    

      

     

  • 相关阅读:
    20.12.2 leetcode7
    20.12.1 leetcode34
    20.11.30 leetcode767
    20.11.29 leetcode976
    Codeforces632E 选择/小偷与商店 背包DP
    魔法少女 DP NG放的水
    逆反的01串 模拟 NG放的水
    最大数maxnumber bzoj1012 JSOI2008 单调队列
    组合数问题 vijos2006 NOIP2016 D2T1 杨辉三角 排列组合 前缀和
    信息传递 vijos1979 NOIP2015D1T2 强连通分量 tarjan模版题
  • 原文地址:https://www.cnblogs.com/geovindu/p/16709095.html
Copyright © 2020-2023  润新知