设计模式(04)创建者模式

原创 2017年07月17日 17:57:25

From Now On,Let us begin Design Patterns。

创建者模式

定义

  • 将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示。 Separate theconstruction of a complex object from its representation so that the sameconstruction process can create different representations.

创建者模式有如下几个特点:

1. 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时由于一个复杂对象的单个属性可能会发生变化(例如:制造汽车时使用的某一部件属于不同的厂家)但是整个复杂对象的构建过程却不会发生变化(例如:汽车的构建图纸已经固定,只需要把部件按照图纸装配好)

2. 当构造过程必须允许被构造的对象有不同表示时

通用类图:
这里写图片描述

角色解说:

Product产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。

Builder抽象构造者:引入抽象建造者的目的,是为了将建造的具体过程交与它的子类来实现。这样更容易扩展。一般至少会有两个抽象方法,一个用来建造产品,一个是用来返回产品。

ConcreteBuilder具体建造者:实现抽象类的所有未实现的方法,具体来说一般是两项任务:组建产品;返回组建好的产品。

Director导演类:负责调用适当的建造者来组建产品,导演类一般不与产品类发生依赖关系,与导演类直接交互的是建造者类。一般来说,导演类被用来封装程序中易变的部分。

创建者模式的优点:

  • 封装性:导演类起到封装(应该是封装产品构造参数设定,避免高层模块深入到建造者内部的实现类。当然,在建造者模式比较庞大时,导演类可以有多个)的作用,可以使客户端不呢知道产品内部组成的细节。

  • 建造者独立,容易扩展:具体的建造者之间是相互独立的,对系统扩展有利。如果有新的需求,通过实现一个新的建造者类就可以完成,基本上不用修改之前已经测试通过的代码,因此也就不会对原有功能引入风险。

  • 便于控制细节风险:由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他的模块产生任何影响。

  • 建造者模式的封装性很好。使用建造者模式可以有效的封装变化,在使用建造者模式的场景中,一般产品类和建造者类是比较稳定的,因此,将主要的业务逻辑封装在导演类中对整体而言可以取得比较好的稳定性。

创建者模式的缺点:

  • 不清楚

创建者模式的使用场景:

相同的方法,不同的执行顺序,产生不同的事件结果时,可以采用建造者模式。

创建者模式的例子:

具体的产品:
这里写图片描述

创建者类:负责具体的实现,我们具体的其他的实现可以在这里扩展,新建新的创建者类就可以了,并且实现对应的功能
这里写图片描述

导演:负责具体的业务逻辑,当我们需要其他的流程的时候,可以加新的导演类
这里写图片描述

建造房屋的场景:
这里写图片描述

建造结果:
这里写图片描述

我们如何对当前例子实现扩展呢?

接着举例说明:(从两方面:工人和导演)
这里写图片描述
导演类:
这里写图片描述

测试:
这里写图片描述

运行结果:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明出处:http://blog.csdn.net/yabay2208

相关文章推荐

设计模式-创建者模式(Builder)

  • 2008年08月19日 11:14
  • 73KB
  • 下载

设计模式之(三)创建者builder

一、概述 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳...
  • moiyer
  • moiyer
  • 2011年08月04日 11:07
  • 324

设计模式实现——创建者模式

  • 2016年09月03日 18:27
  • 5.62MB
  • 下载

设计模式(五)创建者模式(Builder)

一、模式定义造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的...

设计模式(C++版)之(builder)创建者模式

建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。       建造者模式一...

设计模式 一 创建者模式 Builder(生成器)

  • calllmq
  • calllmq
  • 2012年03月31日 15:43
  • 462

深入浅出设计模式(四):6.创建者模式

6.创建者模式(Builder)在抽象工厂模式中,一个具体的工厂类负责创建一系列相互关联的对象,但此时工厂类的职责并不单一,如果组装变得复杂,则工厂类将会变得很庞大,不利于维护。创建者模式就是将一个复...

设计模式之创建者模式

1.什么是创建者模式(构建者模式)?          创建者模式类似于一个步骤基本固定,但是每个步骤中的具体形式却又可以变化的这类对象的创建。其中,创建者负责构建一个对象的各个部分,并且完成组装的...

JAVA设计模式——创建者模式(builder)

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 类型:创建类模式 类图: 四个要素 产品类:一般是一个较为复杂的对象,也就是说创建对象...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式(04)创建者模式
举报原因:
原因补充:

(最多只允许输入30个字)