设计模式(三)建造者模式

作者:神秘网友 发布时间:2021-11-25 14:06:33

设计模式(三)建造者模式

建造者模式

  • 建造者模式也属于创建模式,它提供了一种创建对象的最佳方式。
  • 定义:将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
  • 主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。
  • 用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)
  • 例子:
    • 工厂(建造者模式):负责制造汽车(组装过程和细节在工厂内)
    • 汽车购买者(用户):你只要说出你需要的型号(对象的类型和内容),然后直接购买就可以使用了(不需要知道汽车是怎么组成的(车轮、车门、发动机 、方向盘 ))等

比如建一个房子(地基,钢筋工程,铺垫线,粉刷等来实现)包工头首先建一个抽象类(Bulider),把产品的图纸(Product)给了工人,工人(worker)按照包工头的图纸去建造,然后老板(director)去指挥它们去实现。

Builder(一个整体的产品需要什么)

package com.my.factory.builder;
//抽象的建造者:方法
public  abstract  class Builder {
    abstract void  builderaA();//地基
    abstract void  builderaB();//钢筋工程
    abstract void  builderaC();//铺垫线
    abstract void  builderaD();//粉刷
    //完工:得到产品
    abstract Product getProduct();
}

Product

package com.my.factory.builder;
//产品:房子
public class Product {
    private String buildA;
    private String buildB;
    private String buildC;
    private String buildD;

    public String getBuildA() {
        return buildA;
    }

    public void setBuildA(String buildA) {
        this.buildA = buildA;
    }

    public String getBuildB() {
        return buildB;
    }

    public void setBuildB(String buildB) {
        this.buildB = buildB;
    }

    public String getBuildC() {
        return buildC;
    }

    public void setBuildC(String buildC) {
        this.buildC = buildC;
    }

    public String getBuildD() {
        return buildD;
    }

    public void setBuildD(String buildD) {
        this.buildD = buildD;
    }

    @Override
    public String toString() {
        return "Product{" +
                "buildA='" + buildA + '\'' +
                ", buildB='" + buildB + '\'' +
                ", buildC='" + buildC + '\'' +
                ", buildD='" + buildD + '\'' +
                '}';
    }
}

worker

package com.my.factory.builder;
//具体的建造者:工人
public class Worker extends Builder {
    private Product product;
    public Worker(){
        product = new Product();
    }


    @Override
    void builderaA() {
        product.setBuildA("地基");
        System.out.println("地基");
    }

    @Override
    void builderaB() {
        product.setBuildA("钢筋");
        System.out.println("钢筋");
    }

    @Override
    void builderaC() {
        product.setBuildA("铺垫线");
        System.out.println("铺垫线");
    }

    @Override
    void builderaD() {
        product.setBuildA("粉刷墙面");
        System.out.println("粉刷墙面");
    }

    @Override
    Product getProduct() {
        return product;
    }
}

Directory

package com.my.factory.builder;
//指挥:核心负责构建一个工程,工程如何构建,由它决定
public class Director {
    //指挥工人按顺序建房子
    public  Product build(Builder builder){
        builder.builderaA();
        builder.builderaB();
        builder.builderaC();
        builder.builderaD();
        return builder.getProduct();
    }
}

交工(测试)

package com.my.factory.builder;

public class Test {
    public static void main(String[] args) {
        //指挥
        Director director = new Director();
        //指挥具体的工人完成 产品
        Product build = director.build(new Worker());
        String s = build.toString();
        System.out.println(s);
    }
}

总结

上面实例是Builder模式的常规方法,导演类Director在Builder模式中具有很重要的作用,它用于指导具有如何构建产品,控制调用先后次序,并向调用这返回完整的产品类,但是有些情况下需要简化系统结构,可以把Director和抽象建造者进行结合。

另一种案列见建造者模式之链式编程


本文章教程介绍完毕,更多请访问跳墙网其他文章教程!

设计模式(三)建造者模式 相关文章

  1. Java设计模式之(三)建造者模式

    Java设计模式之(三)建造者模式 1、什么是建造者模式 Separate the construction of a complex object from its representation so that the same construction process can create different representations. 将一个复杂对象的构建与它的表示分离,

  2. 设计模式值建造者模式

    设计模式值建造者模式 基础类: /** * 构建对象创建 * @author lsd */public class AirShip { //类模拟子组件 private OrbitaModule orbitaModule; private Engine engine; private EscapeTower escapeTower; public OrbitaModule getOrbitaModule() { return

  3. 设计模式-建造者模式

    设计模式-建造者模式 //产品public abstract class Food { public Liststring list = new Liststring(); public abstract void show(); } //辣椒炒肉 public class lajiaochaorou: Food { public override void show() { Console.WriteLine(我已经:); foreac

  4. 初入设计模式 --- 建造者模式

    初入设计模式 --- 建造者模式 how? 图解案例 实现步骤 创建组件实体类 设置一个太空飞船必需的东西 /**. * 小火花飞船 * @author Typhoon Walking */public class AirShip { /**. * 轨道舱 */ private OrbitalModule orbitalModule; /**. * 引擎 */ private E

  5. 设计模式(建造者模式)

    1、建造者模式 (1)概念 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示。建造者模式注重组装过程,而工厂方法模式更注重创建过程 2、建造者模式的实现 (1)UML (2)实现 抽象建造者 public in...

  6. 设计模式建造者模式

    设计模式:建造者模式 设计模式:建造者模式 是将一个复杂对象的构建与它的表示分离 使得同样的构建过程可以创建不同的表示 特征: 用户著需要建造的类型就可以或的对象 建造过程及细节不需要了解 建造者模式的适用场...

  7. 设计模式-----建造者模式

    设计模式-----建造者模式 一 建造者模式介绍 建造者模式使用的场景,产品类非常的复杂,或者 产品类中的调用顺序不同产生了不同的效能 , 建造者模式最主要功能是 基本方法的调用顺序安排 ,也就是这些基本方法已经实现...

  8. JAVA设计模式之建造者模式

    JAVA设计模式之建造者模式 建造者模式,用于生产复杂对象。核心:用两个属性集合来实现创建对象时的链式调度。 =================建造者===================== public interface Build { public void makeWindow(); public void makeFloor(); public Room bu

  9. 设计模式系列--建造者模式

    建造者模式使用户更加注重对象创建的过程,不需要关注创建的内部细节。 实现方式 我们平常点奶茶,可以选择大杯、中杯、小杯,什么水果,什么奶,什么茶底等 Tea对象 public class Tea {private String teaSize;private String milkType;privat...

  10. 设计模式之建造者模式

    设计模式之建造者模式 设计模式之建造者模式 定义: 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式 核心本质: (1) 分离了对象子组件的单独构造(由 Buil...

  11. 设计模式~~~建造者模式

    设计模式~~~建造者模式 在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。例如,计算机是由 CPU、主板、内存、硬盘、显卡、机箱、显示器、键盘、鼠标等部件组装而成的...

  12. 建造者模式_设计模式

    建造者模式_设计模式 盖房子的需求: 过程包括 大壮、砌墙、封顶。 房子也是各种各样的普通房子、高楼大厦、别墅等。 基本介绍: 1)建造者模式幼教生成器模式,是一种对象构建模式。它可以将复杂的对象的建造过程抽象...

  13. 设计模式之建造者模式

    设计模式之建造者模式 什么是建造者模式 建造者模式( Builder Pattern ) 又叫生成器模式,建造者模式可以将一个产品的内部表象与产品的生产过程抽象出来,从而可以使同一个建造过程生成具有不同的内部表象的产品对象。当...

  14. 3. JavaScript 设计模式(模板模式,建造者模式)

    3. JavaScript 设计模式(模板模式,建造者模式) 模板方法模式VS建造者模式!!! 二话不多,先学完在比较!!! 1.模板模式 定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不...

  15. 设计模式建造者模式

    设计模式建造者模式 定义 将一个复杂对象的构建和表示分离,使得同样的而构建方式可创建不同的表示。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是...

  16. 【秒懂设计模式】建造者模式

    【秒懂设计模式】建造者模式 秒懂设计模式建造者模式 (四)建造者模式 1.先解释一下,什么是建造者模式呢? 【官方定义】 将一个复杂对象的构建,与它的表示分离,使得同样的构建过程可以创建不同的表示。 【理解...

  17. java设计模式-建造者模式

    建造者模式 一,什么是建造者模式 定义 :将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式是23种设计模式中创建型模式中的一种,我们知道创建模式有五种,分别是单例模式、工厂...

  18. C++设计模式建造者模式(Builder模式)

    C++设计模式建造者模式(Builder模式) 建造者模式 概念 建造者模式(Builder Pattern),将一个复杂对象的构建与它的 表示(变化) 分离,使得 同样的构建过程(稳定) 可以创建不同的表示 GOF的UML图 Builder(抽象建造者):为创建一...

  19. 设计模式(4) 建造者模式

    什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它...

  20. 设计模式05:建造者模式

    设计模式05:建造者模式 抽象一点说建造者模式的目的: 将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。-《设计模式》GOF 举个例子,一台电脑的主板上有很多的硬件,可能根据需要要经...

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2021, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词