zoukankan      html  css  js  c++  java
  • 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的源码如下:

    待续…………

    今天多一点积累,明天少一分烦恼
  • 相关阅读:
    xmind 8 readme
    【08】英语词汇速记大全1词根词缀记忆法
    【20180312】2018年03月12日(随想)
    大佬说
    github私有库购买信息
    【01】用构造器创建函数中的小知识
    【01】魔芋使用MDN的一点点经验
    10.12 telnet:远程登录主机
    10.11 arping:发送arp请求
    10.10 traceroute:追踪数据传输路由状况
  • 原文地址:https://www.cnblogs.com/galibujianbusana/p/6412565.html
Copyright © 2011-2022 走看看