一、介绍
外观模式提供一个统一接口去访问子系统的一组接口,简化外部客户端对子系统的调用,降低客户端和子系统的耦合度,客户端不需要关注子系统复杂的依赖关系和实现逻辑,只需要和外观接口交互即可。
二、代码实例
子系统1
public class WindowManager {
public void createWindow(){
System.out.println("创建一个window");
}
public void destroyWindow(){
System.out.println("销毁一个window");
}
}
子系统2
public class Canvas {
public void draw(){
System.out.println("绘制一个图形");
}
public void clear(){
System.out.println("清除空间");
}
}
子系统3
public class EventManager {
public void event(){
System.out.println("一个点击事件");
}
public void remove(){
System.out.println("删除一个事件");
}
}
外观类
public class PhoneFacade {
private final WindowManager mWindowManager;
private final Canvas mCanvas;
private final EventManager mEventManager;
public PhoneFacade(WindowManager windowManager, Canvas canvas, EventManager eventManager) {
this.mWindowManager = windowManager;
this.mCanvas = canvas;
this.mEventManager = eventManager;
}
public void init(){
mWindowManager.createWindow();
mCanvas.draw();
mEventManager.event();
}
public void clear(){
mEventManager.remove();
mCanvas.clear();
mWindowManager.destroyWindow();
}
}
四、总结
外观模式给我的感觉还是挺好理解的,提供一个统一的接口去调用各个子系统,客户端和外观类交互,不用去关心各个子系统的实现细节,感觉就是Java的封装特性。
网友评论