设计模式之Builder
来源:互联网 发布:JS在区间内取随机数 编辑:程序博客网 时间:2024/05/21 17:53
知识点:
建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
UML图如下:
建造者模式通常包括下面几个角色:
builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。
ConcreteBuilder:实现Builder接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建。 在建造过程完成后,提供产品的实例。
Director:调用具体建造者来创建复杂对象的各个部分,在指导者中不涉及具体产品的信息,只负责保证对象各部分完整创建或按某种顺序创建。
Product:要创建的复杂对象。
它与抽象工厂相似,因为它也可以创建复杂的对象。主要的区别是builder模式着重于一步步构造一个复杂对象。而抽象工厂着重于多个系列的产品对象(简单或则是复杂的)。builder在最后一步返回产品,而对于抽象工厂来说,产品是立即返回的。
当看完builder时,感觉似乎在哪里见过,或者有点怀疑我在抽象工厂中的代码实现部分是不是已经就是builder模式了。在抽象工厂代码实现中我定义了一个组装汽车的类:AssemblingCars。依次为汽车组装轮子,引擎,车架。细想过后觉得这就是一种构建,是车的构建的过程(一种带有顺序性或规则性的过程),并且这里的builder就我们的abstractFactory,主要是完成零部件的生产。其实就一种抽象工厂与Builder的结合,只是在AbstractProductCarpart类中需要进行简单的改进使其能后返回组装工厂组装完成后的产品。
总结:
Builder是通过Directory与builder两个类把产品的表示与构造分开的,这样就可以实现相同的构造之下产出不同的产品。比如书上所讲,当产品的表示变为计算了迷宫的墙和门的数量的时候,通过Directory构造后的result是墙与门的数量而不是迷宫本身。
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之Builder
- 设计模式之 builder
- 设计模式之Builder
- 设计模式之builder
- TeleTable( Data Structure { Trie && SegmentTree} )
- c++类的初创建(复数类)
- MCV中字典转模型的KVC底层实现
- Spring与Hibernate与Struts整合(一)配置文件
- 今日总结
- 设计模式之Builder
- Shell - 1
- windows远程桌面域的问题
- Java Web笔记:Tomcat数据源
- 经典的报数问题
- 非参数估计-parzen窗估计和k近邻估计
- Java NIO系列教程(十) Java NIO DatagramChannel
- 把握linux内核设计思想系列
- 做微商还有很长微商卖什么孙佺推广的路要走,还有很多技巧要学习