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的源码如下:

    待续…………

    今天多一点积累,明天少一分烦恼
  • 相关阅读:
    十一.状态设计模式
    十. 享元设计模式
    Orcale(一)概念
    java类加载器
    spring中的事务管理机制
    spring中的annotation注解类配置
    countDownLatch和Semaphore用于多线程
    布隆过滤器
    mybatis-genator自动生成的mapper中模糊查询使用方法
    java中的异常
  • 原文地址:https://www.cnblogs.com/galibujianbusana/p/6412565.html
Copyright © 2011-2022 走看看