常用设计模式之建造者(Builder)模式

建造者模式用于将构建过程与表现分离,适用于创建复杂对象。通过实例解析了Android中Dialog的Builder模式应用,揭示其工作原理。文章讨论了简单Builder模式存在的问题,如强耦合、必须声明静态等,并提出了更优的实现方式,引入指挥者(Director)角色以遵循开闭原则。通过抽象建造者定义必需方法,具体建造者负责执行,指挥者决定建造过程,实现代码复用和扩展。
摘要由CSDN通过智能技术生成

目的:
如果你的对象相对复杂,那么就应该考虑对象的构建和它的表现相分离。目的是为了同样的构建过程可以创建不同的表示。

在android中我们创建dialog的时候就是建造者模式的最好体现。

AlertDialog alertDialog = new AlertDialog.Builder(getContext()).setView(new EditText(getContext())).create();

我们先来看看android源码中实现builder模式是如何实现的,这里我借鉴朋友的博客java设计模式——-Builder模式里面的一个构建复杂数据的例子来说明:

public class NutritionFacts {
    private int servingSize = 0; // 食用份量
    private int servings; // 份数
    private int calories; // 卡路里
    private int sodium; // 钠
    private int fat; // 脂肪
    private int carbohydrate; // 碳水化合物

    public static class Builder {

        private int servingSize = 0; // 食用份量
        private int servings; // 份数
        private int calories; // 卡路里
        private int sodium; // 钠
        private int fat; // 脂肪
        private int carbohydrate; // 碳水化合物

        public Builder(int servingSize, int servings) {
            this.servingSize = servingSize;
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值