第十二周 C++设计模式 Boolan 李建忠

2017-04-04  本文已影响0人  一般的路人丙

“对象创建”模式

Factory Method 工厂方法

动机(Motivation)

模式定义

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子类。
——《设计模式》GoF

结构(Structure)

结构

Product和Creator 稳定
ConcreteProduct和ConcreteCreator 变化

要点总结

Abstract Factory 抽象工厂

动机(Motivation)

模式定义

提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。
——《设计模式》GoF

结构(Structure)

结构

AbstractFactory和AbstractProduct 稳定
ConcreteFactory和Client 变化

要点总结

典型实现

把一系列相关对象由一个基类关联在一起,防止错误的交叉调用。

Prototype 原型模式

动机(Motivation)

模式定义

使用原型实例制定创建对象的种类,然后通过拷贝这些原型来创建新的对象。
——《设计模式》GoF

结构(Structure)

结构

Prototype 稳定
ConcretePrototype 变化

要点总结

return new Self(*this);

Builder 构建器

动机(Motivation)

C++中构造函数里的虚函数是静态绑定,而不是动态绑定。
子类里构造函数的虚函数调用的是父类的虚函数。

模式定义

将一个复杂对象的构建与其表示相分离,使得同样的构建过程(稳定)可以创建不同的表示(变化)。
——《设计模式》GoF

结构(Structure)

结构

Director 和 Builder 稳定
ConcreteBuilder 变化

要点总结

“接口隔离”模式

Facade 门面模式

系统间耦合的复杂度

系统间耦合的复杂度

动机(Motivation)

模式定义

为子系统中的一组接口提供一个一致(稳定)的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)。
——《设计模式》GoF

结构(Structure)

结构

要点总结

Proxy 代理模式

动机(Motivation)

透明操作是指一致性。

模式定义

为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问。
——《设计模式》 GoF

结构(Structure)

结构

Subject稳定
RealSubject和Proxy变化

要点总结

Adapter 适配器

动机(Motivation)

模式定义

将一个类的接口转换成客户希望的另一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
——《设计模式》GoF

结构(Structure)

结构

Target和Adaptee稳定
Adapter变化

要点总结

类适配器,不太好,有很多其他困扰的问题
protected 继承,只用实现
只有坏处,没有好处

Mediator 中介者

动机(Motivation)

模式变化

用一个中介对象来封装(封装变化)一系列的对象交互。中介者使各对象不需要显式的相互引用(编译时依赖→运行时依赖),从而使其耦合松散(管理变化),而且可以独立地改变它们之间的交互。
——《设计模式》GoF

结构(Structure)

结构

要点总结

上一篇 下一篇

猜你喜欢

热点阅读