分享

13. 门面模式

 黎可图书馆 2013-09-10
一. 定义
Facade(外观模式):为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

二. 角色
门面(Facade)角色:客户端可以调用这个角色的方法。
子系统(Subsystem)角色:可以同时有一个或多个子系统。

三. 实现
拿我每天的生活举例,每次到公司时,要先开灯,再开空调,最后开电脑,离开公司时则相反。

Test.java
public class Test {
public static void main(String[] args) {
Facade facade = Facade.getInstance();
facade.comeIn();
facade.leave();
}
}
测试类,里面门面角色,其中有来时和离开的方法。

Computer.java
public class Computer {
public void turnOn(){
System.out.println("电脑打开了");
}
public void turnOff(){
System.out.println("电脑关闭了");
}
}
电脑类,有开和关的方法。

Light.java
public class Light {
public void turnOn(){
System.out.println("灯被打开了");
}
public void turnOff(){
System.out.println("灯被关闭了");
}
}
灯类,有开关。

Aircondition.java
public class Aircondition {
public void turnOn(){
System.out.println("空调打开了");
}
public void turnOff(){
System.out.println("空调关闭了");
}
}
空调类,依然是开关。

Facade.java
public class Facade {
private Computer computer;
private Aircondition aircondition;
private Light light;
private Facade(){
computer = new Computer();
aircondition = new Aircondition();
light = new Light();
}
public static Facade getInstance(){
return new Facade();
}
public void comeIn(){
light.turnOn();
aircondition.turnOn();
computer.turnOn();
}
public void leave(){
computer.turnOff();
aircondition.turnOff();
light.turnOff();
}
}
门面类,其中封装了comein 和 leave方法。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多