前言
本文来自《Head Fist 设计模式》一书的实例,这里仅仅是个人笔记记录
简介
外观模式就是封装一下,让接口变得更加简单。我看了这个模式,都感觉自己无时无刻都在使用外观模式。叫外观的原因,他封装了一组相关的功能,简化接口,让它变得更好漂亮一些。
需求
用外观模式简化看电视的环节
没有外观模式的WatchTV()功能
好多事情都有自己亲力亲为,比如插电线,按电源键,调音量,调亮度,拿遥控器,看着一点都不智能。
/**
* 没有的外观模式demo
*/
void beforeFacadePatternModeWatchTvCommand() {
TV mTV= new TV();
mTV.plugWire();
mTV.pushPowerButton();
mTV.controlVolum();
mTV.controlBrightness();
mTV.getRemoteControl();
}
使用外观模式
/**
* 外观模式
*/
void facadePatternModeWatchTvCommand() {
TV mTV= new TV();
mTV.watchTv();
}
// 这里把看电视的相关操作封装了一下
private void watchTv() {
plugWire();
pushPowerButton();
controlVolum();
controlBrightness();
getRemoteControl();
}
TV类
/**
* 外观模式
*/
void facadePatternModeWatchTvCommand() {
TV mTV= new TV();
mTV.watchTv();
}
public class TV {
private void plugWire() {
System.out.print("plugWire");
}
private void pushPowerButton() {
System.out.print("pushPowerButton");
}
private void controlVolum() {
System.out.print("controlVolum");
}
private void controlBrightness() {
System.out.print("controlBrightness");
}
private void getRemoteControl(){
System.out.print("getRemoteControl");
}
private void watchTv() {
plugWire();
pushPowerButton();
controlVolum();
controlBrightness();
getRemoteControl();
}
}
结语
外部模式让接口变得更加简单,漂亮。
可以说这个不需要学了,因为一个良好的编程习惯就可以不知不觉用到这个模式