GoF设计模式 - 外观模式
Posted 让程序飞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GoF设计模式 - 外观模式相关的知识,希望对你有一定的参考价值。
前言
外观模式(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();
优缺点
优点
- 降低了客户端与子系统的耦合关系。
- 让子系统更加易用,客户端不再需要了解子系统内部的实现。
- 提高了安全性,例如有些方法是对系统外的,有些方法是系统内部使用的,把需要暴露给外部的功能集中到外观中,这样既方便客户端使用,也很好地隐藏了内部的细节。
缺点
- 不符合“开闭原则”,新增子系统时需要修改外观类。
源码
以上是关于GoF设计模式 - 外观模式的主要内容,如果未能解决你的问题,请参考以下文章