设计模式-创建型模式总结

全部五种创建型模式已经介绍完毕了:工厂方法模式,抽象工厂模式,生成器模式,原型模式和单例模式。

我始终认为设计模式是一些牛人总结出来的一些经验,我们不必死搬硬套。

但是这些设计模式已经这么多年了,经受住了大量的考验。而且大多数人认为是合理的。那么就值得我们借鉴。

我本人的日常工作中也大量的用到了这些设计模式。对于创建型模式来说,我用的比较多的是工厂方法模式,生成器模式和单例模式。我个人觉得还是很有用的。

 

接下来,我总结一下创建型设计模式。

创建对象主要有两种常用方法:

1. 生成创建对象的类的子类,比如工厂方法模式。这种方法的一个缺点是:仅仅为了改变产品类,就可能需要创建一个新的子类来实现相应的工厂方法。

2. 通过对象复合的方式,定义一个对象负责明确产品对象的类,并将它作为该系统的参数。抽象工厂模式,生成器模式和原型模式都属于这种方式。所有这3种模式都涉及创建了一个新的负责创建产品对象的“工厂对象”。抽象工厂模式由工厂对象产生多个类的对象。生成器模式里面的builder对象使用一个相对复杂的协议,逐步创建一个复杂产品。原型模式里面的工厂对象通过拷贝原型对象来创建产品对象。在这种情况下,因为原型负责返回产品对象,所以原型对象就是工厂对象。

通常,我们要使用创建型设计模式的时候,应该以工厂方法模式开始,并且当设计者发现需要更大的灵活性时,设计便会向其他创建型模式演化。抽象工厂模式,生成器模式和原型模式提供了更加灵活的设计,同时也更加复杂。(对于原型模式,JAVA, C#等相对高级的语言,估计已经不需要了,因为这类语言本身可能就支持类对象,而类对象就可以当作一个原型,而且JAVA,C#可能还提供了Clone接口,比如C#有ICloneable,这个接口就要求实现Clone函数。但是对于C++,原型模式还是有存在的意义。)

 

什么时候使用什么设计模式,这个根据情况而定。一个有经验的设计者通常可以比较快的找到一个比较合适的设计模式。相反,如果这方面缺乏经验的话,那么可能得花比较多的时间来找到一个合适的设计模式,或者一开始还会用错模式,这个没什么关系。每个人都是一步一步提高的,慢慢改进就是了。学无止境啊。

 

好了,创建型设计模式到此结束。接下来该是结构型模式上场了。待续...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值