写在前面:感谢GeekBand提供这样好的学习机会,让我在繁忙的工作之余可以学习巩固c++知识。以下是边学边记的一些扩展点。分享给大家。
对象创建模式
通过这个模式绕开 "new", 避免new的时候必须绑定类型,是接口抽象后的第一步工作
典型类型(摘自GOF)
工厂模式:定义一个用于创建对象的接口,让子类决定实例化那一个类。这使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子类。
抽象工厂:提供一个接口,让改接口负责创建一些列“相关或者想依赖的对象”,无需指定他们具体的类。
原型模式:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象
构建器:将一个复杂对象的构建与其表示相分离,使得同样的构建过程(稳定)可以构建不同的表示(变化)
接口隔离模式
在组建构建时,某些接口之间直接的依赖常常会带来很多问题,甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。
典型类型(摘自GOF)
门面模式:为子系统中的一组接口提供一个一致(稳定)的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)
代理模式:为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问。
适配器:将一个类的接口转换成客户希望的另一个接口。这个模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
中介者:用一个中介对象来封装(封装变化)一些列的对象交互。中介者使各对象不需要显式的互相引用(编译时依赖->运行时依赖),从而使其耦合松散(管理变化),而且可以独立地改变他们之间的交互