Skip to content

建造者模式 Builder Pattern

更新日期:2022-6-1
  • 2022-6-1:更新格式

定义

也叫作生成器模式。
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 | 反馈问题: -> Android issues - gitee
本文链接: https://www.an.rustfisher.com/designPattern/Builder-Pattern/ |-> 本站文章最近更新
一家之言,仅当抛砖引玉。如有错漏,还请指出。下方的广告链接内容与本站无关。如果喜欢本站的内容,也可 -> 点击请作者喝咖啡 ,谢谢支持服务器。