美文网首页
八.创建型模式Build

八.创建型模式Build

作者: 蜗牛1991 | 来源:发表于2017-10-19 15:07 被阅读0次

1.定义

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

2.简介

  • 为了实现同样的构建过程可以创建不同的表现。
  • 先把构建过程独立出来,在生成器模式中把它称为指导者,由它来指导装配过程,但是不负责每步具体的实现。
  • 必须要有能具体实现每步的对象,在生成器模式中称这些实现对象为生成器。
  • 指导者就是可以重用的构建过程,而生成器是可以被切换的具体实现。前面的实现中,每种具体的导出文件格式的实现就相当于生成器。
  • 这个构建的过程是统一的,固定不变的,变化的部分放到生成器部分了,只要配置不同的生成器,那么同样的构建过程,就能构建出不同的产品表示来。
    参考:【创建型模式五】生成器(Builder)

3.类图

image.png

4.实例

package designMode;

import java.io.IOException;

/**
 * Created by admin on 2017/10/19.
 */
public class BuilderPattern {
    public static void main(String[] args) throws IOException {
        QiRuiBuilder qiRuiBuilder = new QiRuiBuilder();
        Director director = new Director(qiRuiBuilder);
        director.construct();
        System.out.println("输出到文本文件的内容:\n"+qiRuiBuilder.getCar().getName());
        BMWBuilder bmwBuilder = new BMWBuilder();
        Director director1 = new Director(bmwBuilder);
        director1.construct();
        System.out.println("输出到文本文件的内容:\n"+bmwBuilder.getCar().getName());

    }
}

interface Builder{
    void prepare();
    void pack();
    void finish();
    Car1 getCar();
}


class BMWBuilder implements Builder{


    @Override
    public void prepare() {

    }

    @Override
    public void pack() {

    }

    @Override
    public void finish() {

    }

    @Override
    public Car1 getCar() {
        return new BMWCar1("宝马");
    }
}

class QiRuiBuilder implements Builder{

    @Override
    public void prepare() {
        //子类定义
    }

    @Override
    public void pack() {

    }

    @Override
    public void finish() {

    }

    @Override
    public Car1 getCar() {
        return new QiRuiCar1("奇瑞");
    }
}

class Director{
   private Builder builder;

    public Director(Builder builder) {
        this.builder = builder;
    }
    public void construct(){
        builder.prepare();
        builder.pack();
        builder.finish();
    }
}

abstract class Car1{
    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
class  BMWCar1 extends Car1{
    public BMWCar1(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
class QiRuiCar1 extends Car1{

    public QiRuiCar1(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

相关文章

  • 八.创建型模式Build

    1.定义 Builder:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 2.简介 为...

  • 设计模式之Build模式——对象创建型

    意图 将一个复杂对象的构造与它的表示分离,使得同样的构造过程可以创建不同的表示。 当构造过程必须允许被构造的对象有...

  • 23种设计模式总结一

    23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型。 一、创建型设计模式 创建型设计模式包括:单...

  • 组装复杂对象的模式---Build模式(生成者模式)

    Build模式是一步一步创建复杂对象的创建型设计模式,它允许用户在不知道内部构造细节的情况下,可以更精细地控制对象...

  • 设计模式之工厂模式

    设计模式中主要分为三大类:创建型、结构型、行为型 工厂模式属于创建型,顾名思义,创建型模式关注对象的创建过程,它将...

  • 创建型设计模式总结

    创建型设计模式总结 Intro 前面几篇文章已经把创建型设计模式都介绍了,来做一个简单的总结。 创建型设计模式,就...

  • 设计模式--分类

    一、设计模式的分类设计模式可以概括为23种,按照特点可以将其分为三大类型:创建型、结构型、行为型。1、创建型创建型...

  • 《设计模式之美》- 23种设计模式

    学习《设计模式之美》笔记。 23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型 创建型模式 创建...

  • 设计模式简单总结(待完善)

    设计模式简单总结 设计模式可以分为:创建型,结构型,行为型三种模式。 1 创建型模式 1.1 单例模式 用来指定某...

  • 手绘设计模式结构图

    GoF的设计模式一共23个,可以分为3大类:创建型、结构型和行为型,这篇文章主要讨论创建型。 创建型的设计模式包括...

网友评论

      本文标题:八.创建型模式Build

      本文链接:https://www.haomeiwen.com/subject/keuuuxtx.html