自学内容网 自学内容网

建造者模式(Builder Pattern)工作原理

建造者模式(Builder Pattern)工作原理

一、基本概念

建造者模式是一种创建对象的设计模式,将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的产品对象。

二、主要角色

  1. 产品(Product):要创建的复杂对象。
  2. 抽象建造者(Builder):定义了创建产品各个部件的抽象方法。
  3. 具体建造者(Concrete Builder):实现了抽象建造者的抽象方法,负责构建产品的各个部件,并负责组装产品。
  4. 指挥者(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)!