外观模式
1可以理解成一个适配器包装多个适配者
2:打个比方说:
电脑开机:里面有加载驱动接口,加载启动项接口,加载....接口,反正开机是一个很复杂的过程,而外观模式就是告诉你,不要去管那些复杂的东西,你只要找到按下电源就是开机就好了.。
3:定义:提供一个统一的接口,用来访问子系统的一群接口,类似于宏命令。
4涉及原则
最少知识原则(迪米特法则):只和你的密友交流,意思就是减少类之间的依赖
好处:减少对象之间依赖
坏处:更多的包装类被制造出来,增加代码复杂度,开发时间,降低运行性能
5 好处:
简化接口
将客户从子系统中解耦
案例:
比如吃饭这件事,我们只要调用吃饭方法就行,(外观模式)
public class ZuoFan {
public void play() {
System.out.println("做饭");
}
}
public class ZuoCai {
public void play() {
System.out.println("做菜");
}
}
public class XiWang {
public void play() {
System.out.println("洗碗");
}
}
public class XiKuai {
public void play() {
System.out.println("洗筷子");
}
}
public class XiCai {
public void play() {
System.out.println("洗菜");
}
}
外观模式
public class ChiFan {
XiCai XiCai=null;
XiKuai XiKuai=null;
XiWang XiWang=null;
ZuoCai ZuoCai=null;
ZuoFan ZuoFan=null;
public ChiFan() {
XiCai = new XiCai();
XiKuai = new XiKuai();
XiWang = new XiWang();
ZuoCai = new ZuoCai();
ZuoFan = new ZuoFan();
}
public void eat() {
XiCai.play();
XiKuai.play();
XiWang.play();
ZuoCai.play();
ZuoFan.play();
System.out.println("---------");
System.out.println("吃饭");
}
}
测试
public static void main(String[] args) {
ChiFan ChiFan=new ChiFan();
ChiFan.eat();
}
结果:
洗菜
洗筷子
洗碗
做菜
做饭
---------
吃饭