建造者模式(Builder Pattern)是一种设计模式,它用于解决复杂对象的构建问题,当一个对象需要多个步骤来创建时,建造者模式可以将这些步骤封装在一个单独的类中,使得客户端代码不需要知道这些细节,这种模式主要用于创建复杂的对象,特别是那些具有多个组成部分的对象。
(图片来源网络,侵删)
建造者模式的主要优点是:
1、将复杂对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示。
2、客户端代码只需要指定需要创建的对象类型,而不需要关心对象的具体构建过程。
3、可以很容易地改变一个对象的内部表示。
建造者模式的主要缺点是:
1、由于需要额外的建造者类,因此会增加系统的复杂度。
2、如果需要创建的对象种类较多,那么建造者类的个数也会随之增加。
建造者模式的结构如下:
产品(Product):表示需要创建的复杂对象。
建造者(Builder):定义创建产品对象的接口。
具体建造者(ConcreteBuilder):实现建造者接口,完成产品对象的创建。
指挥者(Director):负责调用具体建造者的方法来创建产品对象。
下面是一个简单的例子:
角色 | 类或接口 | 职责 |
产品 | Product | 表示需要创建的复杂对象 |
建造者 | Builder | 定义创建产品对象的接口 |
具体建造者 | ConcreteBuilder | 实现建造者接口,完成产品对象的创建 |
指挥者 | Director | 负责调用具体建造者的方法来创建产品对象 |
使用建造者模式的步骤如下:
1、定义产品类(Product)。
2、定义建造者接口(Builder),声明创建产品各个部件的方法。
3、定义具体建造者类(ConcreteBuilder),实现建造者接口。
4、定义指挥者类(Director),负责调用具体建造者的方法来创建产品对象。
5、客户端代码通过指挥者类来创建产品对象。