一. 定义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方法。
|