Buileder(生成器)—对象创建型模式
一 意图
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
二 适用性
在以下情况使用Build模式:
1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
2 当构造过程必须允许被构造的对象有不同的表示时。
3 Builder模式要解决的也正是这样的问题:
当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成),
我们要复杂对象的创建过程和这个对象的表示(展示)分离开来,
这样做的好处就是通过一步步的进行复杂对象的构建,
由于在每一步的构造过程中可以引入参数,使得经过相同的步骤创建最后得到的对象的展示不一样。
在书中第一个例子RTF文档阅读器的实现中,可以看到文档RTFReader支持。
从此图中可以看到:
1封装了三种复杂对象的构建:
ASCIIText,TeXText,TextWiWdget,分别对应不同的builder

2 同样的创建过程创建不同的表示
可以在RTFReader中对文档进行解析的时候while循环,对于同样的文档,使用不同builder创建产品,同样过程可以得到不同的表示。
3 复杂对象构建分过程进行
在while循环中,可以看到对不同类型的文档构件,处理的方式不同。分成不同的部分进行处理。
三 结构图

四 交互过程

Director:是构造一个使用Builder接口的对象
Client创建Director对象,并用它所想要的Builder对象进行配置。
Director创建和装配对象过程
五 代码实现
1 Product

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/61681.html