标签:ade code 调用 屏幕 auth 访问 一起 总结 public
提供了一个统一的接口,用于访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用。
家庭影院看电影涉及到灯,DVD还有屏幕等对象,每个对象中都提供不同的操作该对象的方法。如果使用子对象去实现看电影的操作这样涉及到的对象很多,而且和子对象完全耦合在一起了。所以需要使用外观模式进行子对象的封装处理,我们调用就调用外观模式中提供的统一方法,实现和子系统中的解耦操作。
/**
* DVD
*
* @author Colin
* @create 2018-05-10
**/
public class DvdPlayer {
public void on(){
System.out.println("打开DVD");
}
public void off(){
System.out.println("关闭DVD");
}
}
/**
* 灯具
*
* @author Colin
* @create 2018-05-10
**/
public class Light {
public void on(){
System.out.println("开灯");
}
public void off(){
System.out.println("关灯");
}
}
/**
* 屏幕
*
* @author Colin
* @create 2018-05-10
**/
public class Screen {
public void on(){
System.out.println("打开屏幕");
}
public void off(){
System.out.println("关闭屏幕");
}
}
/**
* 家庭影院
*
* @author Colin
* @create 2018-05-10
**/
public class HomeMovieFacade {
private DvdPlayer dvdPlayer;
private Light light;
private Screen screen;
public HomeMovieFacade(DvdPlayer dvdPlayer,Light light,Screen screen){
this.dvdPlayer=dvdPlayer;
this.light=light;
this.screen=screen;
}
public void watchMovie(){
light.off();
dvdPlayer.on();
screen.on();
}
}
实现一个外观需要将子系统组合进外观中,然后将工作委托给子系统执行
涉及原则
最少知识原则,不要让太多的类耦合在一起,免得修改其中一部分会影响到其他部分。
标签:ade code 调用 屏幕 auth 访问 一起 总结 public
原文地址:https://www.cnblogs.com/coliz/p/9021987.html