java设计模式- 建造者模式

一 需求以及实现方式

1.1 需求描述

我们要创建一个表示汽车的复杂对象,汽车包含发动机、轮胎和座椅等部分。用传统方式创建,代码如下

1.2 传统实现方式

1.抽象类

复制代码
public abstract  class BuildCarAbstaract {
    //引擎
   public abstract void buildEngine();
   //补胎
   public abstract  void buildTires();
   //座椅
    public abstract void buildSeats();
    public void build() {
        buildEngine();
        buildTires();
        buildSeats();
    }

}

2.具体实现

复制代码
public class BeautifulCar extends BuildCarAbstaract{
    @Override
    public void buildEngine() {
        System.out.println(" 豪华ar发动引擎");
    }

    @Override
    public void buildTires() {
        System.out.println(" 豪华car 补胎");
    }

    @Override
    public void buildSeats() {
        System.out.println(" 豪华car 座椅");
    }
}

3.调用

复制代码
public class CommonCar extends BuildCarAbstaract {
    @Override
    public void buildEngine() {
        System.out.println(" 普通car发动引擎");
    }

    @Override
    public void buildTires() {
       System.out.println(" 普通car 补胎");
    }

    @Override
    public void buildSeats() {
       System.out.println(" 普通car 座椅");
    }
}

4.查看执行结果:

1.3 优缺点

1.优点:容易理解,操作简单

2.缺点:产品和创建产品的过程耦合性强。

3.解决方案:将产品和产品建造过程解耦。使用建造者模式。

二 建造者模式

2.1 建造者模式概念

建造者模式:用于创建一些复杂的、可定制的对象,该对象由多个部分组成,且对象的创建过程需要遵循特定的顺序。将对象的构建过程与其表现分离,使得同样的构建过程可以创建不同的表现。

2.2 组成部分

1.产品(Product):表示最终要构建的复杂对象。

2.建造者(Builder):定义用于构建产品的接口,包含创建产品各个部分的方法。

3.具体建造者(Concrete Builder):实现Builder接口,完成产品各个部分的具体构建工作。

4.指挥者(Director):负责调用合适的建造者方法,按照特定顺序组装产品。

链接:https://www.zhihu.com/question/21857130/answer/3058463145

2.3 代码实现部分

2.4 总结

建造者模式可以帮助我们创建复杂的对象,同时保持代码的可读性和灵活性。通过将对象的构建过程与其表现分离,我们可以使用同样的构建过程创建不同的表现。在实际开发中,当遇到需要创建复杂对象的场景时,可以考虑使用建造者模式。

相关推荐
1024肥宅6 小时前
JavaScript常用设计模式完整指南
前端·javascript·设计模式
特立独行的猫a8 小时前
C++观察者模式设计及实现:玩转设计模式的发布-订阅机制
c++·观察者模式·设计模式
better_liang9 小时前
每日Java面试场景题知识点之-单例模式
java·单例模式·设计模式·面试·企业级开发
sg_knight9 小时前
什么是设计模式?为什么 Python 也需要设计模式
开发语言·python·设计模式
koping_wu10 小时前
【设计模式】设计模式原则、单例模式、工厂模式、模板模式、策略模式
单例模式·设计模式·策略模式
__万波__11 小时前
二十三种设计模式(九)--组合模式
java·设计模式·组合模式
__万波__11 小时前
二十三种设计模式(十)--外观模式
java·设计模式·外观模式
__万波__11 小时前
二十三种设计模式(十一)--享元模式
java·设计模式·享元模式
Henry Zhu12311 小时前
23种设计模式介绍以及C语言实现
c语言·开发语言·设计模式
ZouZou老师1 天前
C++设计模式之解释器模式:以家具生产为例
c++·设计模式·解释器模式