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

        建造者模式可以将一个产品的内部实现和它的构造过程分割开来,从而可以将复杂对象的构建过程外部简单化的目的。

        为什么要用这个模式

    有些产品结构比较复杂,构成产品的零件有许多个,这许多个零件又没有什么关系,并且这些零件的组合是有必须的顺序的,比如说组装汽车(我不懂如何组装汽车哈,瞎说举例而已):要先制作好底座,然后在底座上安装发动机,安装电路油路,安装座椅,然后安装车皮,安装轮子,最后安装车门。其中底座、发动机、电路油路、座椅这些都是零件(对软件来讲就是模块就是类)。这些零件要组合成汽车需要一个复杂的过程,需要一个专门的建造者来管理这些建造步骤,建造者一般只负责管理上述几个步骤(做底座、装发动机等)的具体实施,步骤之间的顺序和协调一般还需要有专门的设计师来进行指导,这就是指导者角色;而由于上述零件可以用于多种产品的制造,而其他产品的设计师和建造者会有不同的制造顺序和建造工艺,所以还需要将建造者和指导者角色抽象出来,基于以上考虑,建造者模式应运而生。

     

    综上,在以下情况下使用建造者模式:

        1. 有许多的零件类要通过一种必须的顺序构成一个产品类,就应该使用建造者模式,这时可以有也可以没有指导者角色

        2. 如果这些零件要组成的产品类不止一个,需要指导者角色

        3. 如果产品类不止一类,则需要抽象指导者角色,构造多个指导者角色的实体类

        模式图解

    Pic53

    从设计模式书中直接拿过来的图解,讲的很明白。

    Director即指导者,Builder即建造者,Product即产品。其中Director根据不同的产品对不同的Builder顺序下达指令,Builder内部按照Director指令进行Product的建造。

  • 相关阅读:
    推荐有关微信开发的十个开源项目
    curl 常见错误码
    mysql修改root密码
    BAT批处理之文件与文件夹操作代码(附xcopy命令详解)
    UE4 Pak包加载
    libcurl 文件上传
    win7右键在目录当前打开命令cmd窗口
    SQLiteDeveloper破解
    Excel替换应用
    解决局域网2级路由互相连接共享的问题
  • 原文地址:https://www.cnblogs.com/doomsword/p/2510842.html
Copyright © 2011-2022 走看看