2019-02-27——设计模式 外观模式
2019-02-27 本文已影响0人
烟雨乱平生
特点
为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问。它让一个应用程序中子系统间的相互依赖关系减少到了最少,它给子系统提供了一个简单、单一的屏障,客户通过这个屏障来与子系统进行通信。通过使用外观模式,使得客户对子系统的引用变得简单了,实现了客户与子系统之间的松耦合。但是它违背了“开闭原则”,因为增加新的子系统可能需要修改外观类或客户端的源代码。
外观模式又叫门面模式
主要角色
- 外观(Facade)角色:为多个子系统对外提供一个共同的接口。
- 子系统(Sub System)角色:实现系统的部分功能,客户可以通过外观角色访问它。
实现
public class Facade {
private SubPartA partA;
private SubPartB partB;
private SubPartC partC;
public Facade(){
partA = new SubPartA();
partB = new SubPartB();
partC = new SubPartC();
}
public void start(){
partA.start();
partB.start();
partC.start();
}
}
public class SubPartA {
void start(){
System.out.println("start part A");
}
}
public class SubPartB {
void start(){
System.out.println("start part B");
}
}
public class SubPartC {
void start(){
System.out.println("start part C");
}
}