Builder模式让我想到一个词“外包”,他把对象的创建外包给一个客户类,并且这个“外包类”要一步一步地创建对象,但是他又不返回本身类的对象。当然,这只是个比方,不是很准确,其实Builder模式要解决的是这样的问题:当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成),我们要要复杂对象的创建过程和这个对象的表示(展示)分离开来,这样做的好处就是通过一步步的进行复杂对象的构建,由于在每一步的构造过程中可以引入参数,使得经过相同的步骤创建最后得到的对象的展示不一样。值得一提的是这个模式体现了自动化特点,要一个对象去创建别的对象,我们一个机器帮助我们更好地去做好创建工作,因为只有机器才明白创建的细节,程序人员通常不知道我们new出来的对象的真正创建的细节,Builder模式典型结构图:
下面的代码来自于一位大牛的blog: http://www.phppan.com/?s=%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F