设计模式:创建型总结

本文总结了设计模式中的创建型模式,包括Factory模式解决了抽象基类实例化的问题,AbstractFactory模式用于创建相关对象组,Singleton模式确保类只有一个实例,Builder模式用于构建复杂对象,以及Prototype模式通过克隆创建新对象。这些模式提高了代码的内聚性和可扩展性。
摘要由CSDN通过智能技术生成

Factory:

问题:

1.为了提高内聚(cohesion)和松耦合(Coupling),经常会抽象出一些类的公共接口以形成抽象基类或接口.可以通过声明一个向基类的指针来指向实际的子类实现,达到多态目的.1)客户程序员必须知道实际子类的名称,2)程序的扩展性和维护变得越来越困难;

2.在父类中并不知道具体要实例化哪一个具体的子类:假设类A中要使用到类B,B是一个抽象父类,A中并不知道具体要实例化哪一个B的子类,但是在A的子类D中是可以知道的.

 

以上2个问题引出了Factory模式的2个最重要的功能:1.定义创建对象的接口,封装了对象的创建;2.使得具体化类的工作延迟到了子类中;

 

AbstractFactory:

 AbstractFactory模式和Factory模式的区别:

       AbstractFactory模式是为创建一组(有多类)相关或依赖的对象提供创建接口,Factory模式是为一类对象提供创建接口或延迟对象的创建到子类中实现;

 

SingleTon:

 通过维护一个static的成员变量来记录这个唯一的对象实例.通过提供一个static的接口instance来获得这个唯一的实例

Static Singleton* _instance;

Static Singleton* Instance()

{

       If (_instance == 0)

              _instance = new Singleton();

       Return _instance;

}

单件模式主要应用在以下场合:
对于一个类,占用的系统资源非常多。而且这些资源可以被全局共享,则可以设计为singleton模式,强迫全局只有一个实例
对于一个类,需要对实例进行计数。可以在createInstance中进行
并可以对实例的个数进行限制。
对于一个类,需要对其实例的具体行为进行控制,例如,期望返回的实例实际上是自己子类的实例。这样可以通过Singleton模式,对客户端代码保持透明。

Builder:

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.

Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节.

其实建造者模式就是用来创建复合对象,并把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。

ProtoType:

       提供一个通过已存在对象进行新对象创建的接口(Clone)

Prototype* Clone() const

{

       Return new ConcretePrototype(*this);

}

使用:

Prototype* p = new ConcretePrototype();

Prototype* p1 = p->Clone();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值