• Android设计模式——Builder(建造者)模式


    1.建造者模式是一步一步创建一个复杂对象的创建模式。该模式是为了将构建复杂对象的过程和他的部件解耦,使得构建过程和部件表示隔离开。

    2.Bulider模式的定义是:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的对象。

    3.Builder的使用场景:

       <1>相同的方法,不同的执行顺序,产生不同的事件结果。

       <2>多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时。

     <3> 产品类非常复杂,或产品类中的调用顺序不同产生了不同的作用。

       <4>初始化一个对象特别复杂,如参数很多,且很多参数具有默认值时。

    4.Builder模式的代码示例:

    /**
     * Builder 建造者模式
     */
    public class Person {
        private String name;
        private String sex;
        private int age;
    
        /**
         * 构造方法,传入builder对象
         * @param builder 对象
         */
        public Person(Builder builder) {
            this.name = builder.name;
            this.sex = builder.sex;
            this.age = builder.age;
        }
    
        /**
         *
         * get  set 方法
         */
        public String getName() {
            return name;
        }
    
        public String getSex() {
            return sex;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
    
        /**
         *
         * 静态内部类 Builder类  包含所有Person属性。
         */
        public static class Builder{
            private String name;
            private String sex;
            private int age;
    
            public Builder name(String name){
                this.name=name;
                return this;
            }
            public Builder sex(String sex){
                this.sex=sex;
                return this;
            }
            public Builder age(int age){
                this.age=age;
                return this;
            }
    
            public Person builder(){
                return new Person(this);
    
            }
        }
    
    }

    通过Builder,可以创建不同参数的Person对象

            Person.Builder builder=new Person.Builder();
            Person person0=builder.name("张三").builder();
            Person person1=builder.name("张三").sex("男").builder();
            Person person2=builder.name("张三").sex("男").age(20).builder();

     5.在Android中我们常见的Builder模式是Alertdialog。Alertdialog的源码如下:

    待续…………

    今天多一点积累,明天少一分烦恼
  • 相关阅读:
    CSP模拟11
    P3870 [TJOI2009]开关
    P2357 守墓人(分块)
    那一天她离我而去 (最短路)
    礼物(概率dp)
    收集邮票(概率dp)
    齿轮
    water
    【纪中受难记】——C3D4:万里无云
    zz maven eclipse svn 上传下载
  • 原文地址:https://www.cnblogs.com/galibujianbusana/p/6412565.html
Copyright © 2020-2023  润新知