介绍
1)外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口提供
一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
2) 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端
只需跟这个接口发生调用,而无需关心这个子系统的内部细节
3) 解决思路:定义一个高层接口,给子系统中的一组接口提供一个一致的界面(比
如在高层接口提供四个方法ready, play, pause, end ),用来访问子系统中的一群接口
4) 也就是说就是通过定义一个一致的接口(界面类),用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节→>外观模式
代码演示
这里以一个电脑重要部件工作流程为简单示例
屏幕
public class Screen {
//单例 饿汉模式
private static Screen instance = new Screen();
public static Screen getInstance(){
return instance;
}
public void open(){
System.out.println("屏幕打开");
}
public void close(){
System.out.println("屏幕关闭");
}
public void show(){
System.out.println("屏幕显示画面");
}
}
主机
public class Host {
//单例 饿汉模式
private static Host instance = new Host();
public static Host getInstance(){
return instance;
}
public void open(){
System.out.println("主机打开");
}
public void close(){
System.out.println("主机关闭");
}
public void play(){
System.out.println("主机开始工作");
}
}
键盘
public class Keyboard {
//单例 饿汉模式
private static Keyboard instance = new Keyboard();
public static Keyboard getInstance(){
return instance;
}
public void open(){
System.out.println("无线键盘打开");
}
public void close(){
System.out.println("无线键盘关闭");
}
public void play(){
System.out.println("键盘开始工作,正在监听按键事件");
}
}
电脑组装
public class Computer {
//聚合部件
private Screen screen;
private Host host;
private Keyboard keyboard;
public Computer() {
super();
this.screen = Screen.getInstance();
this.host = Host.getInstance();
this.keyboard = Keyboard.getInstance();
}
//操作分三步
//打开各个机器组件
public void open(){
screen.open();
host.open();
keyboard.open();
}
//各个部件开始工作
public void work(){
host.play();
keyboard.play();
screen.show();
}
//关闭各个部件
public void close(){
host.close();
keyboard.close();
screen.close();
}
}
测试