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 总结

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

相关推荐
WaaTong10 分钟前
《重学Java设计模式》之 原型模式
java·设计模式·原型模式
霁月风13 分钟前
设计模式——观察者模式
c++·观察者模式·设计模式
暗黑起源喵3 小时前
设计模式-工厂设计模式
java·开发语言·设计模式
wrx繁星点点10 小时前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式
金池尽干12 小时前
设计模式之——观察者模式
观察者模式·设计模式
也无晴也无风雨12 小时前
代码中的设计模式-策略模式
设计模式·bash·策略模式
捕鲸叉21 小时前
MVC(Model-View-Controller)模式概述
开发语言·c++·设计模式
wrx繁星点点1 天前
享元模式:高效管理共享对象的设计模式
java·开发语言·spring·设计模式·maven·intellij-idea·享元模式
凉辰1 天前
设计模式 策略模式 场景Vue (技术提升)
vue.js·设计模式·策略模式
菜菜-plus1 天前
java设计模式之策略模式
java·设计模式·策略模式