对于建造者模式来说,它解决的问题其实和工厂模式有点类似,但不同的地方是,工厂模式在创建对象的时候,如果固定死创建对象时功能的顺序,那就无法应对,对象的功能的顺序变化。
比如:我们在建造房子的时候,框架基本就是:打地基,垒墙,上定,,外墙,防水等等。基本的情况下,我们可以按照一个顺序来。但是,在现实中,建造过程中,一个建造团队会包揽很多的工程,加上天气原因,对于不同的房屋建造进度就会不一样,可能这个团队里不同的工种清闲时间不同。所以,在房主急切建造的情况,团队负责人会打乱造房子的顺序,让清闲的工种去建造房子其他可以建造得到模块,这种情况是很寻常见的。
如果用工厂模式就不好调整这个顺序,而建造者就很容易去做这个事情。接下来就看下建造者模式的类图:
对于建造者模式来说,虽然建造和组装的过程分离开来,但是在一些简单的对象就不需要这么复杂,用其他的模式能解决最好。