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模式比较常见的实现形式是通过链式调用,使得代码更加简洁、易懂。
  • 易于扩展,具体的建造者类之间相互独立,增加新的具体建造者无需修改原有类库的代码。
  • 内部类与外部类相互引用,可能会导致内存消耗比较大。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 应用场景 需要生成的产品对象有复杂...
    Code猎人阅读 492评论 0 1
  • 设计模式概述 在学习面向对象七大设计原则时需要注意以下几点:a) 高内聚、低耦合和单一职能的“冲突”实际上,这两者...
    彦帧阅读 3,811评论 0 14
  • 没有人买车会只买一个轮胎或者方向盘,大家买的都是一辆包含轮胎、方向盘和发动机等多个部件的完整汽车。如何将这些部件组...
    justCode_阅读 1,928评论 1 6
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,786评论 25 709
  • 今天去灵修社区参加了读书会,大家正在读的是《四个约定》的练习书,第四章,再次引导注意力。讲的是如何再次使用你的意愿...
    阿丽安阅读 326评论 0 1