您的位置:首页 > 产品设计 > UI/UE

Builder设计模式原理

2017-06-26 20:21 211 查看
通过本篇的学习,您将掌握:

1、什么是Builder模式

2、Builder模式的运用场景

3、如何封装Builder模式

4、如何使用封装Builder

一、什么是Builder模式

是一步一步创建一个复杂对象的创建型模式,允许用户在不知道内部构建的细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的部件解耦。使得构建过程和部件的表示隔离开来。



二、Builder模式的应用场景

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

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

3、产品非常复杂

4、当初始化一个对象特别复杂,如参数多的时候

三、Builder的封装

builder模式主要由三大块组成:

1、产品的抽象类

2、抽象Builder类,规范产品的组建

3、Builder的具体类。实现对抽象Bilder类的继承,实现具体的功能

通过一个demo的具体代码来体现Builder在项目中的具体使用:

1、产品抽象类

public abstract class People {
protected String mName;
protected String mAge;
@Override
public String toString() {
return "People{" +
"mName='" + mName + '\'' +
", mAge='" + mAge + '\'' +
", mSex='" + mSex + '\'' +
'}';
}
protected String mSex;
public People setName(String name){
this.mName = name;
return null;
}
public People setAge(String age){
this.mAge = age;
return null;
}
public abstract void setmSex();
}


2、Builder抽象类:

public abstract class Builder {
protected  abstract Builder setBuildName(String name);
protected  abstract Builder setBuildAge(String age);
protected  abstract Builder setBuildSex();
protected  abstract People Create();
public static class ManPeople extends People {
public ManPeople(){}
@Override
public void setmSex() {
mSex = "男生";
}
}
}


3、Builder的实现类:

public class PeopleBuilder extends Builder {
People people = new ManPeople();
@Override
public PeopleBuilder setBuildName(String name) {
people.setName(name);
return this;
}
@Override
public PeopleBuilder setBuildAge(String age) {
people.setAge(age);
return this;
}
@Override
public PeopleBuilder setBuildSex() {
people.setmSex();
return this;
}
@Override
public People Create() {
return people;
}
}


4、最后,我们看下怎么调用我们封装好的Builder模式:

People people = new PeopleBuilder()
.setBuildSex()
.setBuildAge("15")
.setBuildName("小米")
.Create();
Log.i(TAG,"people:"+people.toString())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息