启示

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

  最经典的例子就是造人了。建造一个人需要考虑很多因素,比如一个人要有手,要有脚,还有五官......每个人还有高矮胖搜之分。假如用传统的方式建造,应该有几个类。一个是Person类,里面定义一个人的一些属性(手脚等)。一个建造类Builder,负责具体创建工作。然后要创建一个人的时候,调用Person类里面的所有set方法为属性赋值。这样做有个缺点,每创建一个人都要调用Person里面的所有set方法,万一忘了哪个方法,创造出来的人就会缺胳膊少腿的。

  使用建造者模式后,把Builder改造为一个接口,里面定义一些创建属性的方法,然后根据具体的需要(高矮胖搜)去实现这个接口。在实现中具体设置一些属性。还需要一个Director类,用来作为之前Builder类的功能,即复制执行创建人这项工作,里面只是调用接口的方法,不用管具体的创建过程。

使用建造者模式的好处:

1.使用建造者模式可以使客户端不必知道产品内部组成的细节。

2.具体的建造者类之间是相互独立的,对系统的扩展非常有利。

3.由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他的模块产生任何影响。

建造者模式详解

 

使用建造模式的场合:

1.创建一些复杂的对象时,这些对象的内部组成构件间的建造顺序是稳定的,但是对象的内部组成构件面临着复杂的变化。

2.要创建的复杂对象的算法,独立于该对象的组成部分,也独立于组成部分的装配方法时。

posted on 2017-10-27 16:36  启示  阅读(167)  评论(0编辑  收藏  举报