前言
外观模式(Facade),提供一个高层次的接口,隐藏系统的复杂性,使得子系统更易于使用。

具体实现
子系统类 :
public class SubSystemA {
public void methodA(){
System.out.println("执行子系统方法A");
}
}
public class SubSystemB {
public void methodB(){
System.out.println("执行子系统方法B");
}
}
public class SubSystemC {
public void methodC(){
System.out.println("执行子系统方法C");
}
}
外观类:
public class Facade {
private final SubSystemA subSystemA;
private final SubSystemB subSystemB;
private final SubSystemC subSystemC;
public Facade(){
subSystemA = new SubSystemA();
subSystemB = new SubSystemB();
subSystemC = new SubSystemC();
}
public void method(){
subSystemA.methodA();
subSystemB.methodB();
subSystemC.methodC();
}
}
@SpringBootTest
class FacadeDemoApplicationTests {
@Test
void contextLoads() {
Facade facade = new Facade();
facade.method();
}
}

优缺点
优点
- 降低了客户端与子系统的耦合关系。
- 让子系统更加易用,客户端不再需要了解子系统内部的实现。
- 提高了安全性,例如有些方法是对系统外的,有些方法是系统内部使用的,把需要暴露给外部的功能集中到外观中,这样既方便客户端使用,也很好地隐藏了内部的细节。
缺点
- 不符合“开闭原则”,新增子系统时需要修改外观类。
源码
简化系统接口:外观模式详解
本文介绍了外观模式,通过创建一个高层的 Facade 类来隐藏子系统(如SubSystemA、B、C)的复杂性,使客户端更易使用。它强调了降低耦合、提高易用性和安全性,但指出不遵循开闭原则。
450

被折叠的 条评论
为什么被折叠?



