构造模式是一个比较常用的模式,该模式是用于将某个业务的属性和行为进行分离,当业务属性越多的时候该模式用起来就越方便。比如:我要自定义一个比较灵活的弹窗,这个弹窗有显示和隐藏、动画的功能,并且弹窗的大小、样式显示的位置都要可以自定义。这样我们就可以使用构造模式,将行为和属性分离出来,弹窗的显示和隐藏就是行为,其他的均为属性,这些属性的构造过程中就可以被定义好。下面举个其他类型的简单列子。
/**
* @创建者 lucas
* @创建时间 2018/3/16 0016 16:17
* @描述 构造模式
*/
public class BuilderFactory {
private Builder mBuilder;
public BuilderFactory(Builder builder) {
mBuilder = builder;
}
//开始自我介绍
public void introduce(){
Log.d("BuilderFactory", "大家好,我叫" + mBuilder.name +
"我是一个" + mBuilder.character +
"的人,我比较喜欢" + mBuilder.hobby);
}
//构造对象的属性类--我们首先来收集一个人的性格爱好和名字
static class Builder{
private String character;
private String name;
private String hobby;
public Builder getName(String name){
this.name = name;
return this;
}
public Builder getCharacter(String character){
this.character = character;
return this;
}
public Builder getHobby(String hobby){
this.hobby = hobby;
return this;
}
public BuilderFactory build(){
return new BuilderFactory(this);
}
}
}
class Test{
void test(){
BuilderFactory.Builder builder = new BuilderFactory.Builder();
builder.getName("lucas")
.getCharacter("运动")
.getHobby("开朗的")
.build()
.introduce();
}
}