1.核心本质
提供一个统一的接口,隐藏系统的复杂性。将一个比较复杂的类的内部操作隐藏起来,提取一个简单易懂的接口供用户使用。jdbc我们只需要填一些固定参数,不用去知道他具体怎么运行的,
在我看来,很多框架的底层都有外观模式的影子,我们只需要知道他是做什么的,不用去研究源码怎么运行。
2.代码实现
2.1 油烟机
public class RangeHood {
//打开灯
public void openLight(){
System.out.println("打开灯");
}
//打开抽烟器
public void openRangeHood(){
System.out.println("打开抽烟器");
}
//大功率
public void highPower(){
System.out.println("大功率");
}
//小功率
public void lowPower(){
System.out.println("小功率");
}
//关闭抽烟器
public void closeRangeHood(){
System.out.println("关闭抽烟器");
}
}
2.2 外观类
public class RangeHoodAppearance {
private RangeHood rangeHood;
public RangeHoodAppearance() {
rangeHood = new RangeHood();
}
//自动打开大功率
public void openBigPower(){
rangeHood.openRangeHood();
rangeHood.highPower();
}
//自动打开小功率
public void openLowPower(){
rangeHood.openRangeHood();
rangeHood.lowPower();
}
//关闭
public void closeRangeHood(){
rangeHood.closeRangeHood();
}
}
2.3 客户端
public class Test {
public static void main(String[] args) {
RangeHoodAppearance rangeHoodAppearance = new RangeHoodAppearance();
rangeHoodAppearance.openBigPower();
rangeHoodAppearance.closeRangeHood();
}
}