设计模式之建造者模式
1、每种设计模式都是为了解决某一类而问题出现的,建造者模式也不例外。场景如下:有一个对象,如House对象,有很多属性,经常要改变对象属性值,既然是创建型模式,肯定不会让客户端创建对象,如果用工厂模式去创建,那么得总是得改变工厂类代码(为了改变对象属性),这样肯定是行不通的!

2、我们先实现解决这个问题的代码(代码完全根据简介中UML图实现),再讨论。
具体被创建对象(Product),表示被构造的对象。

3、建造者(Builder),为创建一个产品对象的各个部件指定抽象接口。

4、建造者具体实现(ConcreteBuilder),实现Builder的接口以构造和装配该产品的各个部件。

5、指挥者(Director),表示被构造的复杂对象。构造一个实现Builder接口的对象,指导构建过程。

6、测试用力调用。

7、客户端只关心建造者对象,通过传入不同的建造者对象,实现对house对象的反复修改,服务端也只需要创建不同的建造者提供给客户端使用,只增加代码,不修改代码,完全符合“开放封闭原则”,对于创建复合对象(能被固定指挥者调用)是非常合适的。

8、建造者模式的弊端也很突出,创建者的具体实现可能过多,难于维护,增加了客户端的使用难度。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。