【建造者模式】

建造者模式是一个一步一步创建一个复杂对象的设计模式。它可以在一个复杂对象执行相同的方法不同的顺序但是结果不同的特殊情况下对这个复杂对象的构造过程又更加精细的控制。

它一般被用于以下两种情况:① 复杂的对象构建,多个函数,执行的顺序不同,产生的结果也不同的情况 ② 当一个对象初始化特别复杂但里面的各个成员变量都有默认值时。

public class Builder {
    private Product mProduct; // Product类是产品类
    Builder(Product product) {
        mProduct = product;
    }
    public void buildA() {
        mProduct.methodA();
    }
    public void buildB() {
        mProduct.methodB();
    }
    public Product create() {
        return mProduct;
    }
}
public class Director {
    private Builder mBuilder = null;
    Director(Builder builder) {
        mBuilder = builder;
    }
    public void createProduct() {
        mBuilder.buildB();
        mBuilder.buildA();
    }
}

// 	以上是建造者模式的经典实现,然而在Android的具体实现中(例如Dialog)
// 往往不会有Director角色的出现,而是直接使用一个Builder来进行对象的封装
// 这个Builder通常为链式调用,它的关键点在于每一个setter方法都返回自身(return this)
// 这就使得setter方法可以链式调用,如下:
public class Builder {
    private Product mProduct; // Product类是产品类
    Builder(Product product) {
        mProduct = product;
    }
    public void setA() {
        mProduct.methodA();
        return this;
    }
    public void buildB() {
        mProduct.methodB();
        return this;
    }
    public Product create() {
        return mProduct;
    }
}
// 我们需要这样调用
new Bilder().setA().setB().create();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值