美文网首页
Android设计模式:建造者模式

Android设计模式:建造者模式

作者: kjy_112233 | 来源:发表于2018-09-26 11:43 被阅读0次
    • 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

    (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设计模式:建造者模式

          本文链接:https://www.haomeiwen.com/subject/mwgkoftx.html