首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >java: Facade Patterns

java: Facade Patterns

作者头像
geovindu
发布2026-06-19 09:54:12
发布2026-06-19 09:54:12
270
举报
代码语言:javascript
复制
/**
 * 版权所有 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.");
    }
}

代码语言:javascript
复制
/**
 * 版权所有 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.");
    }

}
代码语言:javascript
复制
/**
 * 版权所有 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.");
    }

}
代码语言:javascript
复制
/**
 * 版权所有 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.");
    }

}
代码语言:javascript
复制
/**
 * 版权所有 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();
    }


}

调用测试:

代码语言:javascript
复制
            //门面模式
            security=new SecurityFacade();
            security.activate();

输出:

代码语言:javascript
复制
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.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档