设计模式 建造者模式

建造者模式(Bulider Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者属于对象创建型模式,建造者模式又可以称为生成器模式。

  模式动机:

    在软件开发中,存在大量与汽车类似的复杂属性,他们拥有一系列成员属性,这些成员属性有些是引用类型的成员对象。复杂对象相当于一辆带建造的汽车,而对象的属性相当于汽车的部件,建造产品的过程就相当于组合部件的过程,由于组合部件很复杂,因此这个组合过程往往被写道一个乘坐建造者的对象里,建造者返还给客户端的是一个已经建造完毕的完整产品对象,而用户无需关心该对象所包含的属性以及他们的组装方式。

 模式结构:

  • Bulider:抽象建造者
  • ConcreateBulider:具体建造者
  • Director:指挥者
  • Product:产品角色

 具体流程图如下所示:

            

图像简介:

  具体的套餐名称SubMealBuliderA和SubMealBuliderA继承字套餐建造者MealBulider,MealBulider中包含Meal类的对象,服务员KFCWaiter中包含MealBulider的对象。

具体流程:

  客户知晓具体套餐类等名称,首先向MealBulider发送请求常见一个具体套餐类的对象,服务员类中拥有抽象套餐类这个对象作为属性,服务员根据具体套餐类的对象调用相应的套餐方法,返回给客户。

  

 建造者模式的优点:

  • 客户端不必知道产品内部组成的细节,件产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的对象。
  • 用户使用不同的具体创建者可以得到不同的产品对象。
  • 可以更加精细的控制产品的创建过程
  • 增加新的具体创建者无需修改原有代码。

 缺点:

  • 如果产品之间差异性很大,则不适合使用建造者模式        
原文地址:https://www.cnblogs.com/wfswf/p/15615626.html