建造者模式
Posted RenewDo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了建造者模式相关的知识,希望对你有一定的参考价值。
还是:
C++建造者模式(生成器模式)_微学苑(编程第一站) http://www.weixueyuan.net/view/1273.html
C++设计模式——建造者模式 | 果冻想 http://www.jellythink.com/archives/98
总结:
1、什么时候用建造者模式
a、 当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成),我们要要复杂对象的创建过程和这个对象的表示分离开来,这样做的好处就是通过一步步的进行复杂对象的构建,由于在每一步的构造过程中可以引入参数,使得经过相同的步骤创建最后得到的对象的展示不一样。(分步骤的去构建一个复杂的对象,分多少步是确定的,而每一步的实现是不同的,可能经常发生变化)
b、当需要创建复杂对象的过程中,复杂对象没有多少共同的特点,很难抽象出来时,而复杂对象的组装又有一定的相似点时,建造者模式就可以发挥出作用。
c、把复杂对象的创建和部件的创建分别开来,分别用Builder类和Director类来表示。用Director构建最后的复杂对象,而在上面Builder接口中封装的是如何创建一个个部件(复杂对象是由这些部件组成的),也就是说,Director负责如何将部件最后组装成产品。这样建造者模式就让设计和实现解耦了。
2、区别:
建造者模式和抽象工厂模式在功能上很相似,因为都是用来创建大的复杂的对象,它们的区别是:建造者模式强调的是一步步创建对象,并通过相同的创建过程可以获得不同的结果对象,一般来说建造者模式中对象不是直接返回的。而在 AbstractFactory 模式中对象是直接返回的,抽象工厂模式强调的是为创建多个相互依赖的对象提供一个同一的接口。
以上是关于建造者模式的主要内容,如果未能解决你的问题,请参考以下文章