设计模式-建造者模式

建造者模式

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

模式的结构

  1. 产品角色(Product):它是包含多个组成部件的复杂对象,由具体建造者来创建其各个部件。
  2. 抽象建造者(Builder):它是一个包含创建产品各个子部件的抽象方法的接口,通常还包含一个返回复杂产品的方法 getResult()。
  3. 具体建造者(Concrete Builder):实现 Builder 接口,完成复杂产品的各个部件的具体创建方法。
  4. 指挥者(Director):构建一个使用builder接口的对象。它调用建造者对象中的部件构造与装配方法完成复杂对象的创建,在指挥者中不涉及具体产品的信息。

使用场景

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

优点

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

(2) 客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象

(3)增加新的具体建造者无须修改原有类库的代码,指挥者类针对抽象建造者类编程,系统扩展方便,符合 “开闭原则”

(4)可以更加精细地控制产品的创建过程 。将复杂产品的创建步骤分解在不同的方法中,使得创建过程更加清晰,也更方便使用程序来控制创建过程。

文章目录
  1. 1. 建造者模式
    1. 1.1. 模式的结构
    2. 1.2. 使用场景
    3. 1.3. 优点
| 139.6k