最近让一些事情耽误了,好久没有看设计模式的书了。今天晚上就好好的学一下。

今天学习了建造者模式,这个模式不算难,就是写的还不太熟练。

那么什么叫做建造者模式呢?

建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

我还是感觉建造者模式的UML类图比较好理解:

大话设计模式----建造者模式

我们现在来看这个类图,对于用户来说,我不管你是怎么构建的,我就只是看结果,这个就是叫复杂对象的构建和表示的分离,如果我们用了建造者模式,那么用户就只需要指定需要建造的类型就可以得到他们,而具体建造的过程和细节用户就不需要知道了,而恰巧,建造者模式就把构建过程和表示分离了开来。

我们来理解一下上图,Builder指的是为创建一个Product对象的各个部位指定的抽象接口,ConcreteBuilder是具体的建造者,实现Builder接口,构造和装配各个部件,Product当然就是具体的产品角色,那Director呢?他是指挥者,用来构建一个使用Builder接口的对象。

那么我们什么时候用建造者模式呢?

他主要是用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。

而建造者模式的好处在于,建造者模式使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。

所以说,建造者模式是在当创建复杂对象的算法应该独立与该对象的组成部分以及它们的装配方法时适用的模式。


相关文章: