前言
设计模式是一种在软件设计中广泛应用的概念,它们代表了解决特定问题或实现特定功能的经验性最佳实践和通用解决方案。设计模式是经过反复验证和测试的,可以帮助开发人员更有效地解决常见的设计问题,提高代码的可维护性、可扩展性和可重用性。
设计模式可以分为三个主要类别:创建型、结构型和行为型。创建型设计模式关注对象的创建机制,结构型设计模式关注类和对象的组合方式,而行为型设计模式关注对象之间的通信和协作方式。在这些类别中,存在许多常见的设计模式.
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
什么是外观模式
外观模式是一种软件设计模式,它提供了一种将多个子系统包装在一个更高级别的接口中的方法,这样客户端就可以通过这个接口来访问这些子系统中的各个功能。外观模式的主要目的是通过简化系统的接口,降低客户端的复杂度,同时也可以隐藏子系统之间的复杂依赖关系。
需求
- 进入公司职
- 行政接待
- 每一个都是单独子系统
- 拍照
- 单独子系统
- hr办理入职
- 单独子系统
方法一
一般可能会一个个调用
方法二
外观模式
定义
又叫门面模式,为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问。
外观模式将一个或者数个类的复杂的一切都隐藏在背后,只显露出一个干净美好的外观。
通过实现一个提供更合理的接口的外观类,你可以将一个复杂的子系统变的更加容易使用。
外观模式不只是简化了接口,也将客户从组件的子系统中解耦。
模式角色
SubSystem:子系统角色
Facade:外观角色
Client:客户端角色
UML图
图1
图2
优缺点
优点
降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。
对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易。
缺点
不能很好地限制客户使用子系统类,很容易带来未知风险。
增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开闭原则”
适合场景
- 想要为复杂的子系统提供简单的接口。
- 在客户端和抽象的实现类中存在许多依赖关系。
- 想要对子系统进行分层。
- 设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式;
- 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口;
- 维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。
源码当中的应用
springjdbc
- JdbcUtils 对java.sql中的connection进行封装
tomcat源码
最后
本期结束咱们下次再见👋~
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗