建造者模式(设计模式)

建造者模式

1.描述

建造者设计模式是一种创建型设计模式,主要用于将一个复杂对象的构建过程和其表示分离,使得相同的构建过程可以创建不同的表示。

在建造者设计模式中,通常包含以下几个组件和角色:

  1. Director(指挥者):指挥者负责按照一定的步骤来调用建造者的方法,以便构建最终的对象。指挥者并不了解具体的构建细节,只负责指导构建过程的顺序。

  2. Builder(建造者):建造者是一个接口或抽象类,定义了构建复杂对象所需的各个步骤的方法。具体的建造者类实现这个接口,根据具体需求来实现每个构建步骤。

  3. ConcreteBuilder(具体建造者):具体建造者是建造者接口的具体实现类,负责实现每个构建步骤的具体逻辑。每个具体建造者可以构建不同表示形式的对象。

  4. Product(产品):产品是最终构建出的复杂对象,包含多个部分。产品通常由具体建造者来构建,但客户端只需要通过指挥者即可获取构建好的产品对象。

  5. Client(客户端):客户端负责创建指挥者对象,并指定具体的建造者来构建对象。客户端无需了解构建细节,只需知道如何使用指挥者获取构建好的产品即可。

通过建造者设计模式,可以实现将构建复杂对象的过程与其表示分离,从而提高系统的灵活性和可扩展性。同时,建造者模式也符合单一职责原则,使得代码更易于维护和扩展。

2.代码实例

电脑对象的组件

package BuildersPattern;

/**
 * @author ZhenFrank
 * @date 2024-03-21 14:41:17
 */// 电脑组件类
class Computer {
    private String cpu;
    private String memory;



    private String hardDisk;

    public Computer() {
    }

    public void setCpu(String cpu) {
        this.cpu = cpu;
    }

    public void setMemory(String memory) {
        this.memory = memory;
    }

    public void setHardDisk(String hardDisk) {
        this.hardDisk = hardDisk;
    }

    @Override
    public String toString() {
        return "Computer{" +
                "cpu='" + cpu + '\'' +
                ", memory='" + memory + '\'' +
                ", hardDisk='" + hardDisk + '\'' +
                '}';
    }
}

建造者接口和具体建造者类

// 建造者接口
interface ComputerBuilder {
    void buildCPU();
    void buildMemory();
    void buildHardDisk();
    Computer getResult();
}

// 具体建造者类
class ConcreteComputerBuilder implements ComputerBuilder {
    private Computer computer = new Computer();

    @Override
    public void buildCPU() {
        computer.setCpu("i7");
    }

    @Override
    public void buildMemory() {
        computer.setMemory("16GB");
    }

    @Override
    public void buildHardDisk() {
        computer.setHardDisk("1TB SSD");
    }

    @Override
    public Computer getResult() {
        return computer;
    }
}

指导者

// 指导者类
class Director {
    private ComputerBuilder builder;

    public Director(ComputerBuilder builder) {
        this.builder = builder;
    }

    public Computer construct() {
        builder.buildCPU();
        builder.buildMemory();
        builder.buildHardDisk();
        return builder.getResult();
    }
}

建造者设计模式来构建电脑对象

public class Main {
    public static void main(String[] args) {
        ComputerBuilder builder = new ConcreteComputerBuilder();
        Director director = new Director(builder);

        Computer computer = director.construct();
        System.out.println(computer);
    }
}

3.建造者模式学习总结

建造者模式主要用于构建复杂对象,通过将构建过程拆分为多个步骤,并由指挥者来组织这些步骤的执行,实现了构建过程与表示分离的目的。这种模式在实际项目中可以帮助我们更好地管理对象的构建过程,提高系统的灵活性和可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值