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

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

      模式动机:

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

     模式结构:

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

     具体流程图如下所示:

                

    图像简介:

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

    具体流程:

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

      

     建造者模式的优点:

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

     缺点:

    • 如果产品之间差异性很大,则不适合使用建造者模式        
  • 相关阅读:
    二、制作BOM表格--物料表格--Bill of Materials
    一、生成网络表--create Netlist
    Python使用OpenCV实现简单的人脸检测
    Spring编程式和声明式事务实例讲解
    可能是最漂亮的Spring事务管理详解
    关于Java IO与NIO知识都在这里
    Java IO,硬骨头也能变软
    Java NIO之拥抱Path和Files
    Java NIO之Selector(选择器)
    Java NIO 之 Channel(通道)
  • 原文地址:https://www.cnblogs.com/wfswf/p/15615626.html
Copyright © 2011-2022 走看看