Builder模式

Builder生成器模式。

这种模式是创建型模式,是对于一个复杂对象创建比较有用。所谓复杂对象就是一个类中有很多的属性,实例化一个类的时候,需要赋值很多属性。其实对于这种模式,我觉得在实际开发中,对于对象属性赋值的set方法修改下返回值就行,让直接返回对象本身即可,实际上是编程的一种技巧而已。

public class MainTestBuilder {
    public static void main(String[] args) {
        Products p = new Products.ProductBuilder()
                .buildName("zs")
                .buildPrice(20D)
                .buildUnit(new Unit("斤","1001"))
                .build();
        System.out.println(p.toString());
    }
}

class Products{
    private Products(){}

    private String name;
    private Double price;
    private Unit unit;

    public static class ProductBuilder{
        private Products p;

        public ProductBuilder(){
            p = new Products();
        }

        public ProductBuilder buildName(String name){
            p.name = name;
            return this;
        }
        public ProductBuilder buildPrice(Double price){
            p.price = price;
            return this;
        }

        public ProductBuilder buildUnit(Unit unit){
            p.unit = unit;
            return this;
        }

        public Products build(){
            return p;
        }
    }

    @Override
    public String toString() {
        return "Products{" +
                "name='" + name + '\'' +
                ", price=" + price +
                ", unit=" + unit.getName() +
                '}';
    }
}

class Unit{
    private String name;
    private String code;
    public Unit(String name, String code){
        this.name = name;
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public String getCode() {
        return code;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值