面向对象设计模式学习---Builder模式(创建型)

      在软件系统中,有时候有些对象是由一些列与其相关的“部件对象”组成的复杂对象,该对象通过一种比较稳定的算法,将“部件对象”组合在一起,形成这个复杂对象。由于需求变化,这个复杂对象咯各个部分经常面临着剧烈的变化,从而影响了复杂对象的变化。Builder创建者模式,就是提供一种封装机制,将复杂对象与各部分对象将的关系隔离开,从而避免部件对象的剧烈变化而带动复杂对象的变化。

      Builder设计模式组要用于解决对象部分的需求变化,通常和Composite模式组合应用。

      Builder设计模式思想:将复杂对象抽象成由多个子部件,再通过相对稳定的算法将子部件组合成复杂对象。

      个人觉得,相对有Abstract Factory模式,创建者模式也有其相似点。首先抽象工厂模式,是针对一些列相互关联的对象,而创建者模式中谈及的部分对象也可以视为在复杂对象中相互关联的对象;其次,两者提供一些与对象类型无关的抽象方法,在具体类型中重载该方法,而在客户程序则调用与类型实例无关;当两者的需求都提出增加不同的新对象是,都不适于采用这两种模式。不同之处在于,Builder用不同对象组成一个复杂的对象,抽象工厂模式则是描述不同对象之间的相互关联的特性。(以上为个人理解,如有偏差,欢迎提出不同观点,谢谢!)

示例代码,假设构建一个House的复杂类。

抽象类

 

具体类型

 

 

客户端程序

 

 

public class App
{
  
public static void Main()
  
{
    House house
=HouseBuilder.CreateHouse(New TranditionalBuilder());
  }

}

 

posted @ 2009-06-14 11:50  部落酋长  阅读(340)  评论(0编辑  收藏  举报