美文网首页 安卓安卓开发
安卓设计模式-构建者模式

安卓设计模式-构建者模式

作者: 非爱狂风 | 来源:发表于2019-03-08 16:17 被阅读1次

安卓设计模式-构建者模式

是什么

构建者模式又生builder模式,是将复杂的对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表现

有什么

  1. 经典构建模式
  • 要创建的产品(即对象)
  • 抽象的build,进行设置的各个过程
  • build的具体实现 对抽象builder的实现
  • 使用者
  1. 变种的builder模式
  • 产品类
  • 内部builder

怎么做

经典builder

  1. 创建一个产品类 Person
public class Person{
    private String career;//职业
    private String name;
    private String sex;
    private int age;
    public String getName(){
        return name ;
    }
    poblic String getSet(){
        return sex;
       
    }
    public int getAge(){
        return age;
    }
}
  1. builder 接口
public inerface PersonBuiler{
    public void career();
    public void name();
    public void sex();
    public voide age();
    Person getPerson();
}
  1. builder 实现
    教师的实现
public class TeacherBuilder implement PersonBuild(){
   private Person person;
   public TeacherBuilder(){
       person=new Person();
   }
   public void career(){
       person.setCareer("老师");
   }
    public void name(){
        person.setName("张老师");
    }
    public void sex(){
        person.setSex("男");
    }
    public voide age(){
        person.setAge(35);
    }
    Person getPerson(){
        return person;
    }
}

学生类的实现

public class StudentBuilder implement PersonBuild(){
   private Person person;
   public TeacherBuilder(){
       person=new Person();
   }
   public void career(){
       person.setCareer("学生");
   }
    public void name(){
        person.setName("张三");
    }
    public void sex(){
        person.setSex("男");
    }
    public voide age(){
        person.setAge(18);
    }
    Person getPerson(){
        return person;
    }
}
  1. 使用者 Director,持有builder对象,创建者方法,返回产品
public class Director{
    private PersonBuilder builder;
    public void setBuilde(PersonBuilder builder){
        this.builder=builder;
    }
    public void creater(){
        builder.career();
        builder.sex();
        builer.name();
        builder.age();
    }
    public Person getPerson(){
        return builder.getPerson();
    }
}
  1. 演示
创建一个学生类
Director d=new Director();
d.setBuilder(new StudentBuilder());
d.creater();
Person p=d.getPerson();
~~
### 变种builder
​~~~java
public class Person{
    private String career;//职业
    private String name;
    private String sex;
    private int age;
    public String getName(){
        return name ;
    }
    poblic String getSet(){
        return sex;
       
    }
    public int getAge(){
        return age;
    }
    private Person(Builder builder ){
        this.sex=builder.sex;
        this.age=builder.age;
        this.name=builder.name;
        this.career=builder.career;
    }
    public static class Builer(){
        private final String career;//职业
        private String name;
        private String sex;
        private int age;
        public Builder(String career){
            this.career=career;
        }
        public Builder setSex(String sex){
            this.sex=sex();
            return this;
        }
        public Builder setAge(int age){
            this.age=age;
            return this;
        }
        public Builder setName(String name){
            this.name=name ;
            retuen this;
        }
        public Person build(){
            return new Person(this);
        }
    }
}

演示

Person p=new Person.builder("教师").setSex("男").builder();

什么时候用

1.当需要创建一个对象需要很多变量组合而成,这个时候可以考虑将这个对象的创建过程和对象的表示分离开来,这样可以很简洁的构建一个复杂的对象

优缺点

优点:
(1)良好的封装性, 使用建造者模式可以使客户端不必知道产品内部组成的细节;
(2)建造者独立,容易扩展;
(3)在对象创建过程中会使用到系统中的一些其它对象,这些对象在产品对象的创建过程中不易得到。

缺点:
(1)会产生多余的Builder对象以及Director对象,消耗内存;
(2)对象的构建过程暴露。。

相关文章

  • 安卓设计模式-构建者模式

    安卓设计模式-构建者模式 是什么 构建者模式又生builder模式,是将复杂的对象的构建与他的表示分离,使得同样的...

  • 建造者模式

    安卓常用的设计模式建造者模式也被称为生成器模式,Builder模式,它是创建一个复杂对象的创建型模式,其将构建复杂...

  • 安卓设计模式-观察者模式

    安卓设计模式-观察者模式 观察者模式是什么 观察者模式又称为模型视图模式、源收听者模式、或者从属模式。在对象之间定...

  • 安卓设计模式(四)装饰者模式

    本文将讨论Java设计模式中比较重要的模式之一:装饰者模式 该系列其他文章: 安卓设计模式(一)面向对象六大设计原...

  • 安卓设计模式(二)单例模式

    单例模式是使用最广的设计模式,也是大家最为熟知的. 该系列其他文章: 安卓设计模式(一)面向对象六大设计原则 安卓...

  • Android 设计模式demo项目

    Android 设计模式demo项目 安卓各种设计模式demoGitHub地址android-design-pat...

  • java设计模式--建造者模式

    java设计模式--建造者模式 建造者模式定义 建造者模式:是将复杂对象的构建与表示进行分离,使同样的构建过程会有...

  • 设计模式--构建者设计模式

    设计模式--构建者设计模式 1. 概念理解 建造者模式,将一个复杂的对象的构建与他的表示分离,使得同样的构建过程可...

  • Mybatis中的设计模式

    Mybatis 设计模式 mybaits最少用到了九种设计模式: 设计模式mybaits体现Builder构建者模...

  • 工厂模式

    安卓常用的设计模式 工厂模式(Factory Pattern)是 Android中最常用的设计模式之一。这种类型的...

网友评论

    本文标题:安卓设计模式-构建者模式

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