建造者模式(Builder Pattern)工作原理
建造者模式(Builder Pattern)工作原理
一、基本概念
建造者模式是一种创建对象的设计模式,将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的产品对象。
二、主要角色
- 产品(Product):要创建的复杂对象。
- 抽象建造者(Builder):定义了创建产品各个部件的抽象方法。
- 具体建造者(Concrete Builder):实现了抽象建造者的抽象方法,负责构建产品的各个部件,并负责组装产品。
- 指挥者(Director):负责按照一定的顺序调用建造者的方法来构建产品。
三、工作流程
(一)定义产品
首先,定义产品类,描述产品的组成和功能。
class Product {
private String part1;
private String part2;
// 省略构造函数、getter 和 setter 方法
}
(二)定义抽象建造者
创建抽象建造者类,声明构建产品各个部件的抽象方法。
abstract class Builder {
abstract void buildPart1();
abstract void buildPart2();
abstract Product getProduct();
}
(三)定义具体建造者
实现抽象建造者类,具体实现构建产品各个部件的方法,并负责组装产品。
class ConcreteBuilder extends Builder {
private Product product = new Product();
@Override
void buildPart1() {
product.setPart1("Part 1 of Concrete Product");
}
@Override
void buildPart2() {
product.setPart2("Part 2 of Concrete Product");
}
@Override
Product getProduct() {
return product;
}
}
(四)定义指挥者
创建指挥者类,用于控制产品的构建过程。
class Director {
Builder builder;
Director(Builder builder) {
this.builder = builder;
}
void construct() {
builder.buildPart1();
builder.buildPart2();
}
}
(五)使用建造者模式
在客户端代码中,创建具体建造者对象和指挥者对象,通过指挥者控制构建过程,获取最终的产品对象。
public class Client {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Director director = new Director(builder);
director.construct();
Product product = builder.getProduct();
}
}
原文地址:https://blog.csdn.net/qq_44810930/article/details/140676063
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!