码迷,mamicode.com
首页 > 其他好文 > 详细

建造者模式

时间:2016-01-03 22:23:11      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

  建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建出不同的表示。它的关键特性是它将一个建造过程分解成若干步骤,即每个产品的建造都会遵循同样的步骤,但每个步骤内的具体实现都不尽相同。

  建造者模式的类图:

  技术分享

  建造者模式的实际用法

  很多类库都有使用建造者模式,比如Java API中的StringBuilder:

StringBuilder strBuilder = new StringBuilder();
strBuilder.append("one");
strBuilder.append("two");
strBuilder.append("three");
String str = strBuilder.toString();

  append()方法类似于建造过程中的一个步骤,toString()方法是其中的最后一步。

  建造者模式的优点:

  1. 建造者模式可以有效地封装变化,在使用建造者模式的场景中,一般产品类和建造类是比较稳定的,因此将主要业务逻辑封装在Director对整体而言可以取得比较好的稳定性;
  2. 建造者模式很容易进行扩展。

  使用建造者模式的情况:

  1. 需要生成产品对象有复杂的内部结构,每一个内部成分本身可以是对象,也可以仅仅是一个对象的一个组成部分;
  2. 需要生成的产品对象的属性相互依赖,建造者模式强制实行一种分步骤进行的建造过程,比如产品对象的一个属性必须在另一个属性被赋值之后才可以被赋值;
  3. 在对象创建过程中会使用到系统中的其它一些对象,而这些对象在产品的创建过程不易得到;

  建造者模式和工厂模式的区别

  当创造一个对象需要很多步骤时适合使用建造者模式。而当只需调用一个方法就可以简单地创建整个对象时适合使用工厂模式。工厂模式将对象的全部创建工作都封装在工厂类中,并由工厂类向客户端提供最终产品;而在建造者模式中,建造者类一般只提供产品类中各个组件的建造,而将具体建造过程交给Director类,由Director类负责将各个组件按照特定规则组建为产品交付给客户端。

建造者模式

标签:

原文地址:http://www.cnblogs.com/tianex/p/5097273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!