定义
通俗地解释,当你打开灯的时候,你只需要嗯一下开关就好了,不需要关心灯泡亮起来的这个流程,同理,打开电脑的时候, 嗯一下开机键就好了,也不需要关心电脑是先运行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梦就好了,就不用去别的地方找了,很方便。