设计模式-创建型-builder生成器

原创 2013年12月05日 15:59:26

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

2.动机:  一个RTF(rich text format)文档交换格式的阅读器应能将RTF转换为多种正文格式。该阅读器可以将RTF文档转换成普通ASCII文本或转换成一个能以交互方式编辑的正文窗口组件。问题在于可能转换的数目是无限的。因此要能够很容易实现新的转换的增加,同时却不改变RTF阅读器。

builder模式描述了所有这些关系,每一个转换器类在该模式中被称为生成器(bulider),而阅读器被称为导航器(director).

3.适用性:

 当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时。

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

4. 相关模式:

  抽象工厂abstract Factory与bulider相似,也可以创建复杂对象。主要区别是builder模式着重于一步步构造一个复杂对象。而抽象工厂着重于多个系列的产品对象(简单的或复杂的)。bulider在最后的一步返回产品,而对于abastract factory来说,产品是立即返回的。

 composite 通常是用builder生成的。

 5.具体用法:

 http://www.jdon.com/designpatterns/builder.htm

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

设计模式之BUILDER(生成器)—对象创建型模式

1. 意图         将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 2. 动机         一个RT F(Rich Text Format)文档交...

设计模式之对象创建型 — builder 生成器模式

本系列博客示例代码均为C++代码,个人之言,请持怀疑态度参考。意图 将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示 个人理解 生成器模式通俗的说就是构造一个对象可以分...

设计模式深入学习-Builder生成器(创建型模式 )

假如我们在创建游戏中的一个房屋House设施,该房屋肯定会有好几个部分组成,而且各个部分都会经常发生改变。比如窗,门等设施需求经常发生变化,但房屋整体不变。比如换个屋顶,但我们整个房子其他东西不变。如...

设计模式-创建型模式之 Builder(生成器)

意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 代码: #include #include #include using namespace std; ...

面向对象设计模式之Builder生成器模式(创建型)

动机:在软件系统中,有时候面临着“一个复杂对象”的创建工作, 其通常由各个部分的子对象用一定的算法构成;由于需求的变化, 这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起 的算法却相对...

【设计模式】创建型模式之生成器Builder

生成器Builder是一种创建型设计模式,意在将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 下面是Builder模式的类图—— Builder:为创建一个Produc...

设计模式之建造者模式(生成器模式)(Builder) 创建型模式

Builder模式解决这样的问题:当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成),我们要把复杂对象的创建过程和这个对象的表示分离出来,这样做的好处就是通过一步步的进行复杂对象的创建,...

设计模式(2)—— 生成器 (Builder)

Builder解决的问题 Builder(生成器)的模式用于用多个部件生成不同产品的问题: Builder模式适用于: 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时 当构...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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