建造者设计模式

建造者设计模式


建造者模式属于创建型模式。适用于对象的创建过程复杂多样,构造步骤需要交给用户去自定义的情况。更加注重创建过程的灵活性,常与链式编程一起使用。

对象:

/**
 * 对象中有构造方法可能多种多样,建造出来的对象不尽相同时,
 * 可以采用新增一个建造者来定义构造过程,并将构造步骤交给用户去自定义
 */
public class OneObject {
    private String a;
    private String b;
    /**
     * 构造方法多种多样:
     *     public OneObject(String a){//一个参数的逻辑}
     *     public OneObject(String a, String b){//两个参数的逻辑}
     */
    public OneObject(){}
    public String getA() { return a; }
    public void setA(String a) { this.a = a; }
    public String getB() { return b; }
    public void setB(String b) { this.b = b; }
}

建造者:

/**
 * 定义建造者接口
 */
public interface IBuilder {
    OneObject build();
}
// 实现类
public class OneObjectBuilder implements IBuilder{
    OneObject oneObject = new OneObject(); // 持有对象
    public OneObjectBuilder addA(String a) {
        // 给对象设置不同的参数时,可以做不同的逻辑处理
        oneObject.setA(a);
        return this;
    }
    public OneObjectBuilder addB(String b) {
        // 给对象设置不同的参数时,可以做不同的逻辑处理
        oneObject.setB(b);
        return this;
    }
    @Override
    public OneObject build() {
        // 构造逻辑
        oneObject.setA(oneObject.getA() + "$");
        oneObject.setB(oneObject.getB() + "$");
        return oneObject; // 返回最终建造好的对象
    }
}

使用:

     OneObjectBuilder oneObjectBuilder = new OneObjectBuilder();
     oneObjectBuilder.addA("123").addB("234");
     OneObject oneObject = oneObjectBuilder.build();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值