zoukankan      html  css  js  c++  java
  • 设计模式 建造者模式

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

      模式动机:

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

     模式结构:

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

     具体流程图如下所示:

                

    图像简介:

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

    具体流程:

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

      

     建造者模式的优点:

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

     缺点:

    • 如果产品之间差异性很大,则不适合使用建造者模式        
  • 相关阅读:
    新站发布——寻爱交友网
    博客园居然还在运营
    关于Method类的invoke方法
    创建对象的四种方法
    事务操作
    数据库的并发
    run( )和start( )方法
    JAVA语言的下面几种数组复制方法中,哪个效率最高?
    构造函数问题
    上下转型的调用问题
  • 原文地址:https://www.cnblogs.com/wfswf/p/15615626.html
Copyright © 2011-2022 走看看