设计模式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();
    }
}

总结:

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


目录
相关文章
|
3月前
|
设计模式 Java 机器人
Java设计模式-建造者模式
建造者(Builder)模式指将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。它是把对象的构建和表述分离。
44 0
Java设计模式-建造者模式
|
3月前
|
设计模式
设计模式 | 建造者模式
设计模式 | 建造者模式
36 0
|
3月前
|
设计模式 算法 Java
行为型设计模式-策略模式(Strategy Pattern)
行为型设计模式-策略模式(Strategy Pattern)
|
3月前
|
设计模式 Go 开发工具
Golang设计模式——04建造者模式
Golang设计模式——04建造者模式
23 0
|
3月前
|
设计模式 算法
设计模式 - 行为型模式_ 访问者模式Visitor Pattern
设计模式 - 行为型模式_ 访问者模式Visitor Pattern
39 1
设计模式 - 行为型模式_ 访问者模式Visitor Pattern
|
3月前
|
设计模式 Java 应用服务中间件
设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用
设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用
31 1
|
13天前
|
设计模式 存储 Java
Java设计模式:解释一下单例模式(Singleton Pattern)。
`Singleton Pattern`是Java中的创建型设计模式,确保类只有一个实例并提供全局访问点。它通过私有化构造函数,用静态方法返回唯一的实例。类内静态变量存储此实例,对外仅通过静态方法访问。
16 1
|
15天前
|
设计模式 Java
小谈设计模式(14)—建造者模式
小谈设计模式(14)—建造者模式
|
1月前
|
设计模式 Java
设计模式之建造者模式
设计模式之建造者模式
|
1月前
|
设计模式 算法 程序员
【设计模式】建造者模式
【设计模式】建造者模式