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

    还是: 

    C++建造者模式(生成器模式)_微学苑(编程第一站)    http://www.weixueyuan.net/view/1273.html
     
    C++设计模式——建造者模式 | 果冻想    http://www.jellythink.com/archives/98
     
    总结:
       1、什么时候用建造者模式
         a、 当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成),我们要要复杂对象的创建过程和这个对象的表示分离开来,这样做的好处就是通过一步步的进行复杂对象的构建,由于在每一步的构造过程中可以引入参数,使得经过相同的步骤创建最后得到的对象的展示不一样。(分步骤的去构建一个复杂的对象,分多少步是确定的,而每一步的实现是不同的,可能经常发生变化)
         b、当需要创建复杂对象的过程中,复杂对象没有多少共同的特点,很难抽象出来时,而复杂对象的组装又有一定的相似点时,建造者模式就可以发挥出作用。
         c、把复杂对象的创建和部件的创建分别开来,分别用Builder类和Director类来表示。用Director构建最后的复杂对象,而在上面Builder接口中封装的是如何创建一个个部件(复杂对象是由这些部件组成的),也就是说,Director负责如何将部件最后组装成产品。这样建造者模式就让设计和实现解耦了。
     
    2、区别:
        建造者模式和抽象工厂模式在功能上很相似,因为都是用来创建大的复杂的对象,它们的区别是:建造者模式强调的是一步步创建对象,并通过相同的创建过程可以获得不同的结果对象,一般来说建造者模式中对象不是直接返回的。而在 AbstractFactory 模式中对象是直接返回的,抽象工厂模式强调的是为创建多个相互依赖的对象提供一个同一的接口。
  • 相关阅读:
    ZOJ 2158 Truck History
    Knight Moves (zoj 1091 poj2243)BFS
    poj 1270 Following Orders
    poj 2935 Basic Wall Maze (BFS)
    Holedox Moving (zoj 1361 poj 1324)bfs
    ZOJ 1083 Frame Stacking
    zoj 2193 Window Pains
    hdu1412{A} + {B}
    hdu2031进制转换
    openjudge最长单词
  • 原文地址:https://www.cnblogs.com/daocaorenblog/p/5354433.html
Copyright © 2011-2022 走看看