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

    Separate the construction of a complex object form its representation so that the same construction process can create different representations

    将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

    如果我们用了建造者设计模式,用户就只需要指定需要建造的类型就可以得到他们,而具体建造的过程和细节就不需要知道。

    Builder 是为创建一个Product 对象的各个部件指定的抽象接口,

    ConcreateBuilder 是具体建造者,实现Builder 接口,构建和装配各个部件,Product 是具体的产品角色。

    Director 是构建一个使用Builder 接口的对象。

    建造者模式的优点:
    1. 封装性
       可以使客户端不必知道产品内部组成的细节,不必关心线一个具体的模型内部是如何实现的。

    2. 建造者独立,容易扩展

    3. 便于控制细节风险
        由于具体的建造者是独立 的,因此可以对建造过程逐步细化,而不对其他的模块产生任何影响。

    建造者模式使用的场合:

      主要用于创建一些复杂的对象,这些对象内部构建间的构造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。

    建造者模式的好处:使建造代码与表示代码分离,由于该建造者隐藏了该产品是如何组装的,若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。

    构建者模式是在当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时适用的模式。

    建造者模式的注意事项
     建造者模式关注的是零件类型和装配工艺,这是它与工厂方法模式最大不同的地方,虽然同为创建类模式,但是注重点不同。

  • 相关阅读:
    cf B. Sereja and Suffixes
    cf E. Dima and Magic Guitar
    cf D. Dima and Trap Graph
    cf C. Dima and Salad
    最短路径问题(floyd)
    Drainage Ditches(网络流(EK算法))
    图结构练习—BFSDFS—判断可达性(BFS)
    Sorting It All Out(拓扑排序)
    Power Network(最大流(EK算法))
    Labeling Balls(拓扑)
  • 原文地址:https://www.cnblogs.com/wisdo/p/4263827.html
Copyright © 2011-2022 走看看