设计模式之建造者模式

 时间:2026-04-23 03:21:00

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

设计模式之建造者模式

2、我们先实现解决这个问题的代码(代码完全根据简介中UML图实现),再讨论。

具体被创建对象(Product),表示被构造的对象。

设计模式之建造者模式

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

设计模式之建造者模式

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

设计模式之建造者模式

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

设计模式之建造者模式

6、测试用力调用。

设计模式之建造者模式

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

设计模式之建造者模式

8、建造者模式的弊端也很突出,创建者的具体实现可能过多,难于维护,增加了客户端的使用难度。

  • 设计模式:建造者模式
  • 设计模式之工厂模式
  • 设计模式:创建型模式
  • 怎么玩好《魔兽争霸3》的建造模式
  • 如何建造拱门
  • 热门搜索
    教学内容怎么写 红绿灯怎么看 退款说明怎么写 腰椎间盘突出怎么治 核桃怎么吃最有营养 淘宝怎么改收货地址 博士伦隐形眼镜怎么样 怎么预防近视 保险柜打不开怎么办 君威怎么样