建造者模式 Builder Pattern¶
定义¶
也叫作生成器模式。
Separate the construction of a complex object from its representation
so that the same construction process can create different representations.
优点¶
- 封装性:客户端不必知道模型内部细节
- 建造者独立,易于扩展
- 便于控制细节风险 - 可对建造者进行单独的细化
使用场景¶
- 相同的方法,不同的执行顺序,产生不同的事件结果的场景
- 产品类非常复杂,客户端需要进行多项配置
示例¶
AOSP中的 AlertDialog.Builder
¶
android-25
AlertDialog是Android APP开发中常用的一个类。采用了Builder模式。通过builder可以对dialog进行配置。其中dialog的各项属性可以设置默认值。
public class AlertDialog extends Dialog implements DialogInterface {
public static class Builder {
public Builder(Context context) {}
public Builder setTitle(CharSequence title) {}
public Builder setMessage(@StringRes int messageId) {}
public Builder setPositiveButton(@StringRes int textId, final OnClickListener listener) {}
public Builder setNegativeButton(@StringRes int textId, final OnClickListener listener) {}
public Builder setCancelable(boolean cancelable) {}
// ..................................................
public AlertDialog create() {} //创建dialog
public AlertDialog show() {} // 创建并显示真正的dialog
}
}
作者: rustfisher.com | rf.cs@foxmail.com
示例: AndroidTutorial Gitee, Tutorial Github
本文链接: https://www.an.rustfisher.com/designPattern/Builder-Pattern/
一家之言,仅当抛砖引玉。如有错漏,还请指出。如果喜欢本站的内容,还请支持作者。也可点击1次下方的链接(链接内容与本站无关),谢谢支持服务器