模式概述
Facade模式又称门面模式或外观模式。为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的接口。这个一致的简单的接口被称作facade。Facade模式要求一个子系统的外部与其内部的通信必须通过一个统一的Facade对象进行。Facade模式提供一个高层次的接口,使得子系统更易于使用。
、
模式结构
模式讨论
Facade模式为一个复杂子系统提供一个简单接口,提高子系统的独立性,在层次化结构中,可以使用Facade模式定义系统中每一层的入口。简化外部客户程序和系统间的交互接口。将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦。
Facade要点总结: (将子系统的变化限制在一个范围内)
- 1.从客户程序的角度来看, Façade 模式简化了整个组件系统的接口。对于内部和外部客户程序来说, Façade 模式实现了一种解耦的效果——即内部的子系统的任何变化不会影响到 Façade 接口的变化。
- 2.Façade 设计模式更注重从架构的层次去看待整个系统,而不是单个类的层次。Façade 很多时候更是一种架构设计模式。
- 3.Façade 设计模式并非是一个集装箱,可以任意的放入任何多个对象。Facade模式中组件的内部应该是“相互耦合关系比较大的一系列组件”,而不是简单的功能集合,以便能够实现松耦合,高内聚的特性。
相关模式区分:
- Facade模式注重简化接口。
- Adapter模式注重转换接口。
- Bridge模式注重分离接口(抽象)与其实现
- Decorator模式注重稳定接口的前提下为对象扩展功能。
模式实现
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以后的笔记潇汀会尽量详细讲解一些相关知识的,希望大家继续关注我的博客。
本节笔记到这里就结束了。
潇汀一有时间就会把自己的学习心得,觉得比较好的知识点写出来和大家一起分享。
编程开发的路很长很长,非常希望能和大家一起交流,共同学习,共同进步。
如果文章中有什么疏漏的地方,也请大家指正。也希望大家可以多留言来和我探讨编程相关的问题。
最后,谢谢你们一直的支持~~~
C++完整个代码示例(代码在VS2017下测试可运行)
代码及相关资料下载地址:
https://gitee.com/arvinxt/DesignPattern