Java设计模式 之 外观模式
外观模式在设计模式中是比较简单,假设我们现在要模拟小米手机开机到关机的过程,小米由 CPU、屏幕 及 扬声器 组成,新建代码如下:
//CPU
public class CPU {
public void start() {
}
public void end() {
}
}
//屏幕
public class Screen {
public void on() {
}
public void off() {
}
}
//扬声器
public class Speaker {
public void open() {
}
public void stop() {
}
}
我们一般测试一个手机开关机,需要经过开启CPU,屏幕,扬声器,关闭CPU,屏幕,扬声器等过程,代码如下:
public class PhoneController {
private static CPU cpu = new CPU();
private static Screen screen = new Screen();
private static Speaker speaker = new Speaker();
public static void main(String[] args) {
// 开关机
cpu.start();
screen.on();
speaker.open();
cpu.end();
screen.off();
speaker.stop();
}
}
我们会发现开启手机的流程是否复杂,假设如果我们开机还需要增加其他操作, 比如开启震动器,又需要增加代码且不易整理 ,这时候我们就可以使用外观模式,暴露个接口出来。
外观模式实现
如我们新建一个小米手机,模拟开机和关机两种状态,并把对应的操作放进去,代码如下:
public class XiaoPhone {
private CPU cpu = new CPU();
private Screen screen = new Screen();
private Speaker speaker = new Speaker();
// 开机
public void start() {
cpu.start();
screen.on();
speaker.open();
}
// 关机
public void end() {
cpu.end();
screen.off();
speaker.stop();
}
}
在下面只需要执行下面的几句代码,把具体的操作隐藏在内部,代码如下:
XiaoPhone phone = new XiaoPhone();
phone.start();
phone.end();
我们最后来看,外观模式的定义,外观模式 提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。
统一的接口 :开机 / 关机
子系统中的一群接口 : 开启CPU,屏幕,扬声器 / 关闭CPU,屏幕,扬声器
其他模式可点击链接进目录阅读了解:http://blog.csdn.net/xiao_wanzi94/article/details/78118092