定义
通俗地解释,当你打开灯的时候,你只需要嗯一下开关就好了,不需要关心灯泡亮起来的这个流程,同理,打开电脑的时候,
嗯一下开机键就好了,也不需要关心电脑是先运行cpu还是内核之类的。这样能让用户体验很方便,这种解决方案就是外观模式。
应用场景
1、为复杂的模块或子系统提供外界访问的模块
2、子系统相对独立(调用接口就行)
3、预防低水平人员带来的风险,提高安全性(举例开灯,防止笨蛋被电,电脑开机,
防止笨蛋弄坏电脑零件...等)
代码实现
为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
public interface Draw {
void shape();
}
public class DrawCircle implements Draw {
@Override
public void shape() {
System.out.println("画圆");
}
}
public class DrwaSan implements Draw {
@Override
public void shape() {
System.out.println("画三角形");
}
}
然后用外观类统一包装
public class Facade {
private Draw drawCircle;
private Draw drawSan;
public Facade(){
drawCircle = new DrawCircle();
drawSan = new DrwaSan();
}
public void drawCircle(){
drawCircle.shape();
}
public void drawSan(){
drawSan.shape();
}
}
它这个功能就行QQ一样,能打电话,能聊天,能留言,能存照片,这种统一帮我们做好了的东西就好比外观模式。
public class Main {
public static void main(String[] args){
Facade facade = new Facade();
facade.drawCircle();
facade.drawSan();
}
}
结果
结果不重要,记住核心点就是它包装了好多东西,我们都能调用,方便我们,就像项目中的工具类一样或者比如哆啦A梦的口袋,大熊不需要需要什么尽管找哆啦A梦就好了,就不用去别的地方找了,很方便。