设计模式-build 小记

        设计模式中的建造者模式(Build)是一种创建型设计模式,用于将一个复杂对象的构建过程与其表示分离,从而使同样的构建过程可以创建不同的表示。

        建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象 的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。

组成:

        1.产品(Product):表示最终要构建的复杂对象。

       2.建造者(Builder):定义用于构建产品的接口,包含创建产品各个部分的方法。

        3.具体建造者(Concrete Builder):实现Builder接口,完成产品各个部分的具体构建工作。

        4.指挥者(Director):负责调用合适的建造者方法,按照特定顺序组装产品,在隔离客户与对象的生产情况下创建复杂对象。

代码实现:

// 产品类
class Product {
    private String partA;
    private String partB;
    private String partC;
    public void setPartA(String partA) {
        this.partA = partA;
    }
    public void setPartB(String partB) {
        this.partB = partB;
    }
    public void setPartC(String partC) {
        this.partC = partC;
    }
    // 其他业务方法
}
// 抽象建造者
abstract class Builder {
    protected Product product;
    public abstract void buildPartA();
    public abstract void buildPartB();
    public abstract void buildPartC();
    public Product getResult() {
        return product;
    }
}
// 具体建造者
class ConcreteBuilder extends Builder {
    @Override
    public void buildPartA() {
        product.setPartA("Part A");
    }
    @Override
    public void buildPartB() {
        product.setPartB("Part B");
    }
    @Override
    public void buildPartC() {
        product.setPartC("Part C");
    }
}
//指导者
class Director {
    private Builder builder;
    public void setBuilder(Builder builder) {
        this.builder = builder;
    }
    public Product construct() {
        builder.buildPartA();
        builder.buildPartB();
        builder.buildPartC();
        return builder.getResult();
    }
}
// 客户端代码
public class Client {
    public static void main(String[] args) {
        Director director = new Director();
        Builder builder = new ConcreteBuilder();
        director.setBuilder(builder);
        Product product = director.construct();
    }
}

        在上述示例中,Product是需要被构建的复杂对象,Builder是抽象建造者角色,ConcreteBuilder是具体建造者角色,Director是指导者角色。客户端代码创建了指导者实例并设置具体建造者,然后通过指导者构建产品。

        建造者模式通过将复杂对象的构建过程和表示分离,使得构建过程可以更灵活、可配置,并且可以创建不同表示的对象。这种模式对于构建具有复杂结构的对象尤其有用,可以避免构造方法的参数过多,提高代码的可读性和可维护性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值