设计模式-结构型-外观模式(Facade)
参考文献
外观模式
- 能为程序库、 框架或其他复杂类提供一个简单的接口
组件
- 外观(
Facade
):外观对象是客户端与子系统之间的接口,它封装了子系统的复杂性,提供了一个简化的接口供客户端使用. - 子系统(
Subsystems
):子系统是一组相关的类或接口,它们实现了系统的各个功能.子系统可以包含多个类和层次结构,但是通过外观对象,客户端只需要与外观对象进行交互,而不需要直接与子系统的各个类打交道. - 客户端(
Client
):客户端是使用外观模式的对象.它通过外观对象来访问子系统的功能,而不需要了解子系统的具体实现.
实现方式
1 | // 子系统类:库存管理系统 |
使用场景
-
您想要对子系统进行分层.使用外观来定义每个子系统级别的入口点.如果子系统是相关的,那么您可以通过使它们仅通过外观相互通信来简化它们之间的依赖关系.
-
客户端和抽象的实现类之间存在许多依赖关系.引入外观将子系统与客户端和其他子系统解耦,从而提高子系统的独立性和可移植性.
-
实际场景示例:
- 数据库访问: 在数据库访问过程中,可能需要处理连接管理、SQL查询、事务管理等多个子系统.通过使用外观模式,可以创建一个数据库访问外观类,封装这些子系统,并提供一个简化的接口给开发人员进行数据库操作.
- 购物网站: 一个购物网站可能包含用户认证、商品管理、购物车、支付等多个子系统.通过使用外观模式,可以创建一个购物网站外观类,封装这些子系统的复杂性,并为用户提供一个简单的接口来浏览商品、选择商品、支付等操作.
- 操作系统接口: 操作系统提供了很多底层接口和服务,如文件系统、网络通信、进程管理等.通过使用外观模式,可以创建一个操作系统外观类,封装这些底层接口和服务,并提供一个更高级别的接口给应用程序开发人员进行操作系统相关的开发.
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HoleLin's Blog!