一、作用
外部与一个子系统的通信必须通过一个统一的门面(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();
}
}