设计模式10 - 建造者模式【Builder Pattern】

简介: 设计模式10 - 建造者模式【Builder Pattern】

建造者模式

定义:

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

一般建造者模式有几个对象内容:

Product:要创建的复杂对象。

Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。

ConcreteBuilder:实现Builder接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建。 在建造过程完成后,提供产品的实例。

Director:调用具体建造者来创建复杂对象的各个部分,在指导者中不涉及具体产品的信息,只负责保证对象各部分完整创建或按某种顺序创建。

举例(富士康工人建造电脑):

Product(电脑):

public class ComputerCreator {
    public Computer createComputer(ComputerBuild builder) {
        builder.buildCpu();
        builder.buildHardDisk();
        builder.buildMouse();
        return builder.build();
    }
}

Builder(构建者接口):

public interface ComputerBuild {
    void buildCpu();
    void buildKeyBoard();
    void buildMouse();
    void buildHardDisk();
    Computer build();
}

ConcreteBuilder(构建者实现类):

public class ComputerBuilder implements ComputerBuild {
    private Computer mComputer;
    public ComputerBuilder() {
        mComputer = new Computer();
    }
    @Override
    public void buildCpu() {
        mComputer.setCpu("构建CPU");
    }
    @Override
    public void buildKeyBoard() {
        mComputer.setKeyBoard("构建键盘");
    }
    @Override
    public void buildMouse() {
        mComputer.setKeyBoard("构建鼠标");
    }
    @Override
    public void buildHardDisk() {
        mComputer.setKeyBoard("构建硬盘");
    }
    @Override
    public Computer build() {
        return mComputer;
    }
}

Director(工人开始构建):

public class FSKWorker {
    public Computer createComputer(ComputerBuild builder) {
        builder.buildCpu();
        builder.buildHardDisk();
        builder.buildMouse();
        return builder.build();
    }
}

总结:

有时候面临着”一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成,由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定,因此构建者模式就产生了。讲得通俗点就是,把变化大的东西封装到构建者里面去,变化统一处理。


目录
相关文章
|
5月前
|
设计模式 算法
设计模式--建造者模式 builder
这篇文章通过一个电脑购买的例子,详细解释了建造者模式的四个角色(产品类、抽象构建者、实体构建类和指导者类),并提供了相应的代码实现,阐述了建造者模式在设计复杂对象时的应用和优势。
设计模式--建造者模式 builder
|
3月前
|
设计模式 JavaScript Java
Java设计模式:建造者模式详解
建造者模式是一种创建型设计模式,通过将复杂对象的构建过程与表示分离,使得相同的构建过程可以创建不同的表示。本文详细介绍了建造者模式的原理、背景、应用场景及实际Demo,帮助读者更好地理解和应用这一模式。
114 0
|
5月前
|
设计模式 算法 Java
Java设计模式-建造者模式(6)
Java设计模式-建造者模式(6)
|
5月前
|
设计模式
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
这篇文章详细解释了工厂模式,包括简单工厂、工厂方法和抽象工厂三种类型。每种模式都通过代码示例展示了其应用场景和实现方法,并比较了它们之间的差异。简单工厂模式通过一个工厂类来创建各种产品;工厂方法模式通过定义一个创建对象的接口,由子类决定实例化哪个类;抽象工厂模式提供一个创建相关或依赖对象家族的接口,而不需要明确指定具体类。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
|
5月前
|
设计模式 Java
设计模式--适配器模式 Adapter Pattern
这篇文章介绍了适配器模式,包括其基本介绍、工作原理以及类适配器模式、对象适配器模式和接口适配器模式三种实现方式。
|
6月前
|
设计模式 XML 存储
【四】设计模式~~~创建型模式~~~建造者模式(Java)
文章详细介绍了建造者模式(Builder Pattern),这是一种创建型设计模式,用于将复杂对象的构建与其表示分离,允许分步骤创建一个复杂的对象而无需指定其内部的具体构造细节。通过定义抽象建造者、具体建造者、指挥者和产品角色,建造者模式允许通过相同的构建过程创建不同的产品表示,提高了系统的灵活性和扩展性。
|
7月前
|
设计模式 JavaScript
js设计模式【详解】—— 建造者模式
js设计模式【详解】—— 建造者模式
74 0
|
8月前
|
设计模式
设计模式-05建造者模式(Builder Pattern)
设计模式-05建造者模式(Builder Pattern)
|
2月前
|
设计模式 前端开发 搜索推荐
前端必须掌握的设计模式——模板模式
模板模式(Template Pattern)是一种行为型设计模式,父类定义固定流程和步骤顺序,子类通过继承并重写特定方法实现具体步骤。适用于具有固定结构或流程的场景,如组装汽车、包装礼物等。举例来说,公司年会节目征集时,蜘蛛侠定义了歌曲的四个步骤:前奏、主歌、副歌、结尾。金刚狼和绿巨人根据此模板设计各自的表演内容。通过抽象类定义通用逻辑,子类实现个性化行为,从而减少重复代码。模板模式还支持钩子方法,允许跳过某些步骤,增加灵活性。
142 11
|
3月前
|
设计模式 安全 Java
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式

热门文章

最新文章