【问题标题】:Is mixin considered a design pattern?mixin被认为是一种设计模式吗?
【发布时间】:2010-10-07 07:04:04
【问题描述】:

mixin 被认为是一种设计模式吗?结构?

【问题讨论】:

  • 由谁考虑?我认为没有官方的设计模式列表。
  • 当然有官方的设计模式列表,从“设计模式:可重用的面向对象软件的元素”和更年轻的文献开始。
  • 而且,除了书中提到的23种设计模式之外,还有很多其他的设计模式。我认为,mixin在某种程度上可能被认为是一种设计模式。

标签: design-patterns mixins


【解决方案1】:

它们是一种语言功能。 “模式”与特征不同,因为它解决了一组可能以相互矛盾的方式影响情况的力量。特征,无论是否存在,都倾向于创造模式解决的力量。许多设计模式(Double Dispatch 是一个很好的例子)开始解决语言限制(在这种情况下方法分派在单个参数上)。

【讨论】:

  • 不在 .NET 中。它更像是一种模式。
  • 如果你知道答案,你为什么要问这个问题? ;)
  • 关键字是“喜欢”。这听起来让我不确定。
  • 看起来我们回到了主观性,所以让它留在原处。回答你的问题 - 什么都没有。你会说 mixins 类似于访问者模式吗?在 .NET 中通过扩展 - 装饰器?
  • 如果您的语言支持 mixin,则不需要模式。否则,您通常必须将自己扭成结以使其发生,这称为模式。许多 GoF 模式不存在于函数式语言中,仅存在于面向对象的语言中,因为函数式语言具有一流的功能。同样,如果您的语言支持 mixins,那么唯一的模式就是“使用它”。如果没有,但它是图灵完备的语言,那么无论如何都存在一些复杂的方法来做到这一点。这就是我们所说的模式。
【解决方案2】:

是的,它是用 Ruby 编写的。

Design Patterns in Ruby

【讨论】:

    【解决方案3】:

    是的,它在 D 中。

    “设计模式是软件设计中常见问题的通用可重用解决方案”——维基百科

    D 被编译为机器码,通过使用 mixins,您可以使用它来使模板比在 C++ 中更有用。

    http://www.digitalmars.com/d/1.0/template-mixin.html

    【讨论】:

      【解决方案4】:

      混合不是设计模式。大多数时候它们是语言功能! 例如。在语言 D 中,“mixin”是一个关键字。将关键字用于其预期目的不是模式。关键字/语言特征的典型用法可能被称为“成语”。

      层次结构是“无”、成语、设计模式、架构模式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-16
        • 1970-01-01
        • 2012-02-24
        • 1970-01-01
        • 1970-01-01
        • 2021-06-29
        • 2023-03-29
        • 1970-01-01
        相关资源
        最近更新 更多