builder模式即建造者模式,他的作用是将一个复杂对象的构建和他的表示分离。
实现要点
- 把需要set方法来设置的多个属性封装在一个配置类里
- 具体的set方法放在配置类的内部类Builder类中,并且每个set方法都返回自身,以便进行链式调用。
下面写一个简单的例子 我们平常都会自己写toolbar 这里把toolbar的属性封装起来。
public class ToolbarConfig{
//标题栏的所有属性在这个类中
public SettingConfig settingConfig = new SettingConfig();
private ToolbarConfing(){}
public static class Builder{
SettingConfig settingConfig = new SettingConfig();
public Builder setLeftImage(int leftImageId){
settingConfig.leftImageId = leftImageId;
return this;
}
public Builder setRightImage(int rightImageId){
settingConfig.rightImageId = rightImageId;
return this;
}
public Builder setCenterText(String centerText){
settingConfig.centerText = centerText;
return this;
}
void applyConfig(ToolbarConfig config){
config.settingConfig = this.settingConfig;
}
public ToolbarConfig create(){
ToolbarConfig config = new ToolbarConfig();
applyConfig(config);
return config;
}
}
}
调用:
ToolbarConfig config = new ToolbarConfig.Builder()
.setLeftImage(R.id.left)
.setRightImage(R.id.right)
.setCenterText("注册")
.create();
Builder模式比较常用的实现形式是通过链式调用实现,这样更简洁美观。
网友评论