极客班第9周“设计模式2”笔记

Factory Method工厂方法

(抽象基类是不能被创建(new)的)


1.在运行时再决定创建类型,方法是传入要被创建的类型的工厂(用工厂基类装载),再调用传入的工厂的创建功能。

极客班第9周“设计模式2”笔记_第1张图片
具体工厂overwrite工厂基类的纯虚函数。


极客班第9周“设计模式2”笔记_第2张图片

抽象工厂

极客班第9周“设计模式2”笔记_第3张图片

将同一系列的创建对象的工厂,抽出来放在到抽象工厂里面。

极客班第9周“设计模式2”笔记_第4张图片

Prototype原型模式

它解决是问题跟工厂模式相似,但是方法有不同,相对是工厂模式来说比较少使用。原型模式是将工厂方法的“具体工厂”创建(new)具体对象的功能组合到“具体类”里面,在“具体类”里面创建自己应该叫克隆(clone)。它适用于创建“结构复杂的对象”,复杂的界:当用“工厂方法”创建时感到繁杂,这时候就可以尝试用原型模式。

极客班第9周“设计模式2”笔记_第5张图片
极客班第9周“设计模式2”笔记_第6张图片

构建器

(为什么c++父类的构造函数不能调用子类overwrite的虚函数?因为子类创建的时候,先是调用父类的构造函数,那么子类还没用创建完成时,父类又要调用子类的函数,这明显不可以的。也可以说在c++中,父类构造函数调用将要被子类overwrite的纯虚函数,这时是静态绑定。而在其它语言在这种情况则是动态绑定。)

它和模板方法会有相识点,使用频率较少。

极客班第9周“设计模式2”笔记_第7张图片

Façade门面模式

极客班第9周“设计模式2”笔记_第8张图片

灰色框内就高内聚的一个子系统,外面则是用户。用户与系统之间有过多的耦合。为了解决耦合过多问题,我们应该为系统设计一个对外的接口。这种设计方法叫做Façade。

Proxy代理模式

极客班第9周“设计模式2”笔记_第9张图片

通过实例方法访问,这是比较简单的。在实际开发情况中是会很复杂过程,一般会用专门的工具生成代码。

适配器模式

极客班第9周“设计模式2”笔记_第10张图片
极客班第9周“设计模式2”笔记_第11张图片

OladCass是抽象IAdaptee类的具体类。

极客班第9周“设计模式2”笔记_第12张图片

STL里面的stack和queue都是更改了deqeue的接口的。也属于适配器模式,只不过是抽象接口和具体接口都同是一个类而已。

你可能感兴趣的:(极客班第9周“设计模式2”笔记)