入门设计模式之建造者模式

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80866277 学习更多设计模式请参考:入门设计模式之汇总篇引言:建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而利用一个建筑过程生成具有不同内部表象的对象。
版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80866277


学习更多设计模式请参考:入门设计模式之汇总篇


引言:建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而利用一个建筑过程生成具有不同内部表象的对象。

初次读来这句话可能晦涩难懂,待我们一点点的来剖析它,解开他的神秘面纱。先看下图:

Builder:抽象建造者,给出了建造接口,这里我们以造房子为例,Builder就规定了所有的建筑工人都得会铺地板、砌墙、吊天花板。

WorkBuilder1:具体的建筑实现者,我们这里称之为小王,也就是说小王满足了铺地板、砌墙、吊天花板的要求,现在他就是一个合格的建筑工人了。

Floor、Wall、Ceiling:产品,它们就是小王需要建造的对象了。

Driector:导演者,这里我们可以理解为包工头,他呢就是指挥建造者们的角色了。比如有个富豪要建一个别墅,那么他会直接找到包工头:来,给你钱,去给我来个别墅。其实这个富豪在这里是完全不知道下方的建造者小王小刘等等人是如何操作的,他只跟包工头接触


/**
*抽象建造者
*也可以是一个接口
*/
public abstract class Builder {
    abstract void buildFloor();
    abstract void buildWall();
    abstract void buildCeiling();
}
/**
*小王
*/
public class WorkBuilder1 extends Builder {
    @Override
    void buildFloor() {
        new Floor();
    }

    @Override
    void buildWall() {
        new Wall();
    }

    @Override
    void buildCeiling() {
        new Ceiling();
    }
}
/**
*地板
*/
public class Floor{
}
/**
*墙
*/
public class Wall{
}
/**
*天花板
*/
public class Ceiling {
}

/**
*包工头
*/
public class Driector {
    public Builder builder;
    public Driector(Builder builder){
        this.builder=builder;
    }
    public void excute(){
        this.builder.buildFloor();
        this.builder.buildCeiling();
        this.builder.buildWall();
    }
}

现在我们回过头换一种方式再来看引言,将别墅的内部组成与建筑过程分离开来,从而实现一个包工头不仅可以造别墅还能修游泳池等。

z这样的话是不是已经理解了呢

相关文章
|
28天前
|
设计模式 Java
【设计模式】工厂模式(定义 | 特点 | Demo入门讲解)
【设计模式】工厂模式(定义 | 特点 | Demo入门讲解)
42 2
|
2月前
|
设计模式 算法
设计模式--建造者模式 builder
这篇文章通过一个电脑购买的例子,详细解释了建造者模式的四个角色(产品类、抽象构建者、实体构建类和指导者类),并提供了相应的代码实现,阐述了建造者模式在设计复杂对象时的应用和优势。
设计模式--建造者模式 builder
|
28天前
|
设计模式 XML Java
【设计模式】装饰器模式(定义 | 特点 | Demo入门讲解)
【设计模式】装饰器模式(定义 | 特点 | Demo入门讲解)
28 0
|
28天前
|
设计模式 传感器
【设计模式】观察者模式(定义 | 特点 | Demo入门讲解)
【设计模式】观察者模式(定义 | 特点 | Demo入门讲解)
34 0
|
2月前
|
设计模式 算法 Java
Java设计模式-建造者模式(6)
Java设计模式-建造者模式(6)
|
28天前
|
设计模式 算法 Java
【设计模式】策略模式(定义 | 特点 | Demo入门讲解)
【设计模式】策略模式(定义 | 特点 | Demo入门讲解)
14 0
|
2月前
|
设计模式 C# 开发者
C#设计模式入门实战教程
C#设计模式入门实战教程
|
3月前
|
设计模式 XML 存储
【四】设计模式~~~创建型模式~~~建造者模式(Java)
文章详细介绍了建造者模式(Builder Pattern),这是一种创建型设计模式,用于将复杂对象的构建与其表示分离,允许分步骤创建一个复杂的对象而无需指定其内部的具体构造细节。通过定义抽象建造者、具体建造者、指挥者和产品角色,建造者模式允许通过相同的构建过程创建不同的产品表示,提高了系统的灵活性和扩展性。
|
4月前
|
设计模式 Java 数据安全/隐私保护
Java中的设计模式:从入门到精通
Java中的设计模式:从入门到精通
|
5月前
|
设计模式 算法
建造者模式-大话设计模式
建造者模式-大话设计模式