1、定义:
将复杂的构建过程与其表示相分离。使得有类似构建过程的对象可以共用这个构建过程,并且来创建不同表示。
2、应用:
在软件系统中,有一些对象是很复杂的,该对象由各个部分子对象用一定的算法构成,或者由一定的步骤组合而成。这些算法或者步骤是稳定的,而构成这个对象的子对象常常由于需求的变化而变化。比如组装电脑,有cpu 内存等这些配件稳定的构成,但是构成电脑这个对象的子对象cpu 内存等零件本事可以是多变的。为了共用,需要将这些多变的子对象cpu 内存等与电脑其他不怎么变化的部件分离开来,实现解耦合,即可以轻松实现电脑的升级。
3、结构:
首先是电脑这个对象。Computer.cs
其次,Builder.cs,抽象类用来创建那些多变的部件,当然只是些创建的抽象方法或者接口。
第三,ConcreteBuilder.cs,开始具体的真的创建这些有变化的部件。这个因为需求有多个类,比如低配高配等。并且还有提供一个检索Product的接口?
第四,Director.cs,用来创建computer这个对象。根据需求传进builder参数。从而重建对应的Computer对象。
错错错,只是给定一个builder,至膝盖builder的方法而已,只是给定步骤和次序。创建,直接创建还是ConcreteBuilder。
第五,当然是客户端调用了。
在建造者模式中,Director规定了创建一个对象所需要的步骤和次序,Builder则提供了一些列完成这些步骤的方法,ConcreteBuilder给出了这些方法的具体实现,是对象的直接创建者。
4.实例:http://www.cnblogs.com/libingql/p/3633527.htm
http://terrylee.cnblogs.com/archive/2005/12/19/299878.html
5.实现要点,应用分析参加上面链接,暂时不太好理解。