Android设计模式:建造者模式

  • 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

(1)Build模式创建实例

  • 定义一个静态内部类Builder,内部的成员变量和外部类一样。
  • Builder类通过一系列的方法用于成员变量的赋值,并返回当前对象本身。
  • Builder类提供一个外部类的创建方法build,该方法内部调用了外部类的一个私有构造函数,入参就是内部类Builder
  • 外部类提供一个私有构造函数供内部类调用,在该构造函数中完成成员变量的赋值,取值为Builder对象中对应的成变量的值
public class Person {
    private int age;
    private boolean sex;
    private String name;

    private Person(Builder builder) {
        this.age = builder.age;
        this.sex = builder.sex;
        this.name = builder.name;
    }

    public int getAge() {
        return age;
    }

    public boolean isSex() {
        return sex;
    }

    public String getName() {
        return name;
    }

    //创建建造者
    public static class Builder {
        private int age;
        private boolean sex;
        private String name;

        public Builder setAge(int age) {
            this.age = age;
            return this;
        }

        public Builder setSex(boolean sex) {
            this.sex = sex;
            return this;
        }

        public Builder setName(String name) {
            this.name = name;
            return this;
        }

        public Person build() {
            return new Person(this);
        }
    }
}
  • 代码调用
Person person = new Person.Builder().setName("小高").build();
  • 封装性良好,将配置从目标类中隔离出来,避免作为过多的set方法,并且隐藏内部构建细节
  • Builder模式比较常见的实现形式是通过链式调用,使得代码更加简洁、易懂。
  • 易于扩展,具体的建造者类之间相互独立,增加新的具体建造者无需修改原有类库的代码。
  • 内部类与外部类相互引用,可能会导致内存消耗比较大。

你可能感兴趣的:(Android设计模式:建造者模式)