建造者模式

2016年11月23日

介绍

建造者模式(Builder Pattern)使用多个简单的对象一步步构建成一个复杂的对象.该Builder类独立于其他对象.

解决: 在软件系统中,有时面临着的 “复杂对象” 的创建工作.其通常由各个部分的子对象用一定的算法构成;由于需求的变化,足额个复杂对象的各个部分经常面临则变化.(比如 Guava中 的 CacheBuilder 缓存建造器, JDK的StringBuilder)

使用场景: 一些基本部件不会变,而其组合经常变化的时候.

优点: 1. 建造者独立,已扩展, 2. 便于控制细节风险.

UML图

构建者模式强调一种 组件与整体的关系,即由 Builder构建出来的 Product 是由多个 part 构成的.

与工厂模式的差别

构建者模式与工厂模式两个模式都是创建一个新的对象,向调用者隐藏器创建细节,关于它们的差别,看了一些博客,我觉的主要是构建者模式,更加注重组件与整体的关系,而工程模式并不关心,构建者者模式的part就可以是由多个不同part的工厂来进行创建的.

相关博客:

http://blog.csdn.net/lovelion/article/details/7426015

http://hejiawangjava.iteye.com/blog/2238889

http://bbs.csdn.net/topics/30241587

http://wiki.jikexueyuan.com/project/java-design-pattern/builder-pattern.html