设计模式之建造者模式

建造者模式是一种设计模式,将复杂对象的构建与表示分离,使得创建过程更清晰并支持不同表示。通过指挥者控制建造步骤,允许相同构建过程创建不同表示。常见于需要创建具有多个组件的对象场景,如造房子或快餐套餐。该模式的优点是解耦、清晰的步骤分解,缺点是产品差异过大时适用性受限。与抽象工厂模式相比,建造者更关注逐步构建完整对象。
摘要由CSDN通过智能技术生成

定义: 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

主要作用: 提供了一种创建对象的最佳方式,在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)。

例子:造汽车 & 买汽车
工厂(建造者模式):负责制造汽车(组装过程和细节在工厂内)
汽车购买者(用户):你只需要说出你需要的型号(对象的类型和内容),然后直接购买就可以使用了
(不需要知道汽车是怎么组装的(车轮、车门、发动机、方向盘等等))

在这里插入图片描述

实例分析:造房子

假设造房简化为以下步骤:

1.地基 2.钢筋工程 3.铺电线 4.粉刷

如果要盖一栋房子,首先要找一个建筑公司或者工程承包商(指挥者),承包商将客户对产品的需求划分为各个部件的建造请求(Builder),然后指挥工人(具体建造者)过来造房子(产品)。

抽象的建造者:

package yang.factorymode.buildermode;
//抽象的建造者,定义需求(方法)
public abstract class Builder {
   
    abstract void buildA(); //地基
    abstract void buildB(); //钢筋工程
    abstract void buildC(); //电线
    abstract void buildD(); //粉刷

    //完工,得到产品
    abstract Product getProduct();
}

要得到的产品:

package yang.factorymode.buildermode;
//产品:房子
public class Product {
   
    private String buildA;
    private String buildB;
    private String buildC;
    private String buildD;

    public String getBuildA() {
   
        return buildA;
    }

    public void setBuildA(String buildA) {
   
        this.buildA = buildA;
    }

    public String getBuildB() {
   
        return buildB;
    }

    public void setBuildB(String buildB) {
   
        this.buildB = buildB;
    }

    public String getBuildC() {
   
        return buildC;
    }

    public void setBuildC(String buildC) {
   
        this.buildC = buildC;
    }

    public String getBuildD() {
   
        return buildD;
    }

    public void setBuildD(String buildD) {
   
        this.buildD = buildD;
    }

    @Override
    public String toStr
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值