概念:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。外观模式提供一个高层次的接口,使得子系统更易使用。
外观模式注重“统一的对象”,即提供一个访问子系统的接口,只有通过该接口(Facade)才能允许访问子系统的行为发生。
外观模式的UML图非常简单,只有两个角色:
Facade就是访问子系统的统一入口,Sub System代表的是子系统当中所有类,当然也可以有多个子系统。
我们用一个例子来帮助大家理解:
public interface Secretary {
void operation();
}
public class Document implements Secretary {
@Override
public void operation() {
System.out.println("整理文件");
}
}
public class Meeting implements Secretary {
@Override
public void operation() {
System.out.println("安排会议");
}
}
public class Boss {
private final Secretary meeting = new Meeting();
private final Secretary document = new Document();
public void setMeeting() {
document.operation();
meeting.operation();
}
}
public class Demo {
public static void main(String[] args) {
new Boss().setMeeting();
}
}
如果大家需要视频版本的讲解,欢迎大家关注我的B站:
十二、设计模式之外观模式讲解