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

Android设计模式(2)——Builder模式

2017-12-28 16:23 211 查看

一:Builder模式介绍

Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道的内部构建细节的情况下,可以更精确地控制对象的构造流程。该模式是为了将复杂对象的过程全部解耦。使得构建过程和部件的表示隔离开。在项目中我们经常可以看到例如:AlertDialog、Glide等。

二:Builder模式使用场景

1.相同的方法,不同的执行顺序,会产生不同的事件结构。

2.多个功能,都可以装到一个对象中,产生的运行结果又各不相同。

3.当初始化一个特别复杂,如参数多,并且很多参数都具有默认值。

三:Builder模式总结

Builder模式在Android中比较为常用,通常作为配置类的构建器将配置的构建和表示分离开来,同时也是将配置从目标类中隔离出来,避免过多的set方法。

优点:良好的封装性,使用建造者模式可以使客户的不必知道产品内部组成细节。建造者独立,容易扩展,方便维护。

缺点:会产生多余的Builder对象以及Director对象,消耗内存。

四:Builder模式开发示例

public  class BuilderPerson {

//这里有4个参数
private String name;
private String password;
private String age;
private String id;

//私有的,调用者不能直接创建BuilderPerson对象
private BuilderPerson(BuilderProject builderProject){
this.name=builderProject.name;
this.password=builderProject.password;
this.age=builderProject.age;
this.id=builderProject.id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

/** 内部类,这里面可以自己定义,如果我想账号和密码必须使用,所以构造方法里面写参数,用final修饰*/
public static class BuilderProject {
private final String name;
private final String password;
private String age;
private String id;

public BuilderProject(String name, String password){
this.name=name;
this.password=password;
}

public BuilderProject age(String age){
this.age(age);
return this;
}
public BuilderProject id(String id){
this.id(id);
return this;
}
public BuilderPerson build(){
return new BuilderPerson(this);
}
}
}


//Builder模式,这里多个参数根据项目要求可以自己配置
new BuilderPerson.BuilderProject("name","password")
.age("男")
.id("124563")
.build();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息