设计模式之门面模式

一、作用

        外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。

二、优点缺点

        没有特殊性。

三、应用场景

        为一个复杂子系统提供一个简单接口。

四、例子

class Facade {
    private:
        Ring ring;
        Clarm clarm;
        Light light;
    public :
        Facade(Ring ring, Clarm clarm, Light light) {
           this.ring = ring;
           this.clarm = clarm;
           this.light = light;
        }
   
        void open() {
           light.turnOn();
           ring.turnOn();
           clarm.turnOn();
        }
   
        void close() {
           light.turnOff();
           ring.turnOff();
           clarm.turnOff();
        }
}
 
class Light {
    public:
       void turnOn() {
           System.out.println("===light turnOn===");
       }
       void turnOff() {
           System.out.println("===light turnOff===");
       }
}
 
class Ring {
    public:
       void turnOn() {
           System.out.println("===ring turnOn===");
       }
   
       void turnOff() {
           System.out.println("===ring turnOff===");
       }
}
 
class Clarm {
    public:
        void turnOn() {
           System.out.println("===clarm turnOn===");
        }
   
        void turnOff() {
           System.out.println("===clarm turnOff===");
        }
}
 
class TestFacade {
    private:
        static Ring ring;
        static Light light;
        static Clarm clarm;
    public:
        static void main(String[] args) {
            ring = new Ring();
            light = new Light();
            clarm = new Clarm();
            Facade facade = new Facade(ring, clarm, light);
            facade.open();
            facade.close();
        }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值