设计模式之创建者模式

设计模式之创建者模式Builder构建器模式也被称为生成器模式,是一种创建型设计模式,分离复杂对象的创建和表示

什么是创建者模式

Builder构建器模式也被称为生成器模式,是一种创建型设计模式, 分离复杂对象的创建和表示。简单理解就是内部有许多“小工厂”创建对象,最终来组建一个完全体。
创建者模式让我想起来很早之前的一部动画片《战神金刚》,组成脚和腿,组成躯干,我来组成头部。
在这里插入图片描述

创建者模式使用场景

  1. 同样的创建过程,可以创建出不同的表示结果。
  2. 创建这个对象的步骤比较多,每个步骤都需要一个零部件,最终组合成一个完整的对象。

总结就是创建复杂对象时可以使用创建者模式。

创建者的优缺点

创建者的优点

  1. 良好的封装性,可读性强。
  2. 易于扩展,生成不同形式的产品时, 你可以复用相同的制造代码。
  3. 便于控制风险,符合单一职责原则将复杂构造代码从产品的业务逻辑中分离出来。

创建者的缺点

该模式需要新增多个类, 因此代码整体复杂程度会有所增加。

创建者的实现

import java.util.ArrayList;
import java.util.List;

/** * 战神金刚 */
public class Voltron { 
   
    /** * 头部 */
    public String head;
    /** * 脚和腿 */
    public String feetAndLegs;
    /** * 躯干 */
    public String body;
    /** * 步骤 */
    public List<String> step = new ArrayList<>();

    @Override
    public String toString() { 
   
        return String.join("->", step);
    }
}

interface VoltronBuilder { 
   
    /** * 组成头部 * * @param head 头部 * @return this */
    public VoltronBuilder buildHead(String head);

    /** * 脚和腿 * * @param feetAndLegs 脚和腿 * @return this */
    public VoltronBuilder buildFeetAndLegs(String feetAndLegs);

    /** * 躯干 * * @param body 躯干 * @return this */
    public VoltronBuilder buildBody(String body);

    /** * 构建战神金刚 * * @return 站神 */
    public Voltron build();

}

/** * 简单构建 */
class SimpleVoltronBuilder implements VoltronBuilder { 
   
    Voltron voltron;

    public SimpleVoltronBuilder(Voltron voltron) { 
   
        this.voltron = voltron;
    }

    @Override
    public VoltronBuilder buildHead(String head) { 
   
        this.voltron.head = head;
        this.voltron.step.add(head);
        return this;
    }

    @Override
    public VoltronBuilder buildFeetAndLegs(String feetAndLegs) { 
   
        this.voltron.feetAndLegs = feetAndLegs;
        this.voltron.step.add(feetAndLegs);
        return this;
    }

    @Override
    public VoltronBuilder buildBody(String body) { 
   
        this.voltron.body = body;
        this.voltron.step.add(body);
        return this;
    }

    @Override
    public Voltron build() { 
   
        return this.voltron;
    }

    public static void main(String[] args) { 
   
        Voltron voltron = new SimpleVoltronBuilder(new Voltron())
                .buildFeetAndLegs("组成脚和腿")
                .buildBody("组成躯干")
                .buildHead("我来组成头部")
                .build();
        System.out.println(voltron.toString());
    }
}

总结

创建者模式和模板方法模式极其相似,创建者模式强调的是对象的创建,模板方法模式强调的是方法的执行。创建者模式和工厂模式的区别,创建者模式侧重于产品的类型和创建顺序,工厂模式侧重于创建产品。

今天的文章设计模式之创建者模式分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64025.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注