需求
????进入公司入职
- 行政接待:每一个都是一个单独的子系统
- 拍照:单独的子系统
- HR 办理入职:单独的子系统
实现方法 1
外观设计模式
定义
- 又叫门面模式,为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问
- 外观模式将一个或者数个类的复杂的一切都隐藏在背后,只显露出一个干净美好的外观
- 通过实现一个提供更合理的接口的外观类,你可以将一个复杂的子系统变的更加容易使用
- 外观模式不只是简化了接口,也将客户从组件的子系统中解耦
模式角色
- SubSystem:子系统角色
- Facade:外观角色
- Client:客户端角色
UML 图
优缺点
优点
- 降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类
- 对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易
缺点
- 不能很好地限制客户使用子系统类,很容易带来未知风险
- 增加新的子系统可能需要修改外观类或客户端的源代码,违背了
“开闭原则”
适合场景
- 想要为复杂的子系统提供简单的接口
- 在客户端和抽象的实现类中存在许多依赖关系
- 想要对子系统进行分层
- 设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式
- 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口
- 维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互
源码中的应用
SpringJDBC
- JdbcUtils:对
java.sql
中的connection
进行封装