代码之家  ›  专栏  ›  技术社区  ›  Stu Mackellar

哪一种GoF模式是你不能离开的?

  •  5
  • Stu Mackellar  · 技术社区  · 17 年前

    如果将来您只能使用 Gang of Four book ,你会选择哪一个?原因是什么?

    12 回复  |  直到 17 年前
        1
  •  21
  •   martinus    17 年前

    这不是一种设计模式,但对我来说,这一原则无疑是对我的编程风格影响最大的一本书:

    支持对象组合而不是类继承。

    结合另一个原则“编程到接口,而不是实现”,大多数设计模式自然遵循。

        2
  •  3
  •   Jorge Córdoba    17 年前

    抽象工厂模式或模板方法模式。。。但大多是抽象的工厂模式。它们在很多情况下都非常有用。

    我特别喜欢Abstract Factory的方式,它允许您通过以不同的方式遵循相同的规则,为您知道您的程序将来可能会发生变化的情况做好准备。

    与抽象类类似,抽象类允许您在代码“内部”定义规范,限制代码遵循该规范,而工厂允许您在这些规范中“选择”。简直太美了。

        3
  •  3
  •   Kire Haglin    17 年前

    观察者模式

        4
  •  2
  •   Matthew Olenik    17 年前

    我喜欢国家模式。这对建模很有好处,嗯,是这样的。对于我正在编写的游戏项目,我使用状态层次结构来跟踪游戏状态。它很简单,但非常灵活。

        5
  •  2
  •   Cameron MacFarland    17 年前

    Decorator pattern . 主要是因为它已经在框架中大量使用。

    例如,如果您曾经编写过这样的代码:

    FileStream file = new FileStream("file.txt");
    GZipStream compression = new GZipStream(file);
    TextReader reader = new TextReader(compression);
    reader.ReadAll();
    

    那么你已经使用了装饰图案。

        6
  •  1
  •   Peter Boughton    17 年前

    如果我 有 要选择一个,我会选择封面上的M.C.Escher的照片,贴在墙上

        7
  •  1
  •   JoshBerke    17 年前

    这是一个困难的问题,因为我发现,当我学习模式时,我以一种非常类似于许多设计模式的方式实现了许多系统(特别是更基本的模式,如创造模式、状态、策略和模板)。

    既然我知道了GoF,我就无法在脑海中分辨出哪些模式是我自然无法发现的,而对我来说,这正是我成功的原因 好的 图案好的模式是一种非常自然的模式,您可以使用该模式编写代码,因为它是一个好的解决方案。

    模式只是给我们提供了一种方式,让我们可以讨论用一种通用方言编写解决方案的策略。我知道我没有回答你的问题,所以我申请了。

        8
  •  1
  •   Frank    17 年前

    我喜欢这个 来访者 图案不止一次,我遇到了一个设计问题,无法真正解决它,直到我最终发现访问者模式就是答案。

    您可以向类添加任何功能,而无需更改它!只需在其中放入一个accept()函数。

        9
  •  1
  •   Srikanth    17 年前

    听众或观察家

    我无法想象我的生活会是什么样的,来检查它是否发生过。

    其他:

    1. (如果您不想接触有效的代码,但没有时间了解如何操作,或者您只是不知道如何操作,那么这非常有用)
    2. 状态
    3. 策略
        10
  •  0
  •   alepuzio    17 年前

    这个 :

    • 状态 当我的业务逻辑被分配时;
    • 策略 当上下文改变算法时;
    • 当我阅读一系列的物品时;
        11
  •  0
  •   Niels Hansen    17 年前

    我不得不说 单一模式。

    又是 抽象工厂模式

        12
  •  0
  •   Peter Å tibraný    17 年前

    我离不开迭代器。我每天都用。我几乎无法想象没有它的生活:-)我第二常用的是装饰器/包装器。

    推荐文章