【问题标题】:Design pattern used in projects [closed]项目中使用的设计模式[关闭]
【发布时间】:2011-06-29 16:18:27
【问题描述】:

您好,我最近正在学习设计模式。我想阅读各种项目中使用的设计模式以及它是如何实现的。实现有助于在更广泛的范围内连接设计模式以及他们为什么要使用该模式。开源项目的问题是它们没有正确记录。

谁能帮我提供 sm 在线资源?

PS:如果可能的话,我需要 c 或 C++

更新: 下面列出的项目:
http://www.boost.org
http://sourceforge.net/projects/loki-lib/
'POCO。'
ACE(自适应通信环境)。

如果有人想添加更多内容,请执行。我个人查看了上述项目,发现 boost 是一个不错的选择。

更新:由于关于 java 的一篇很好的文章描述了设计模式 Examples of GoF Design Patterns in Java's core libraries。我在标签中也包含了一些我知道的其他语言

【问题讨论】:

  • 这可能属于programmers.stackexchange.com而不是stackoverflow.com,因为它不是编程问题。
  • 请注意,模式不会神奇地提高代码质量。
  • @Fred 你能详细说明一下吗?您在这里指的质量是什么意思? (效率、可重复性、可读性……)
  • 您可以想象的任何质量衡量标准。模式不是灵丹妙药。我曾经写过一个包含大约 100 个类的俄罗斯方块游戏,其中包含了我当时所知道的所有模式。如果可以使用 pattern,为什么还要使用简单的 if/else? OO 很好,模式更好,对吧?不,这是一个糟糕的、过度设计的废话。
  • 和 FredOverflow 一样的感觉。尽管在某些情况下模式很好,但我曾经打算编写一个工具来检测字符串是否已经在一堆 Java 属性文件中本地化。这个工具是我老板开始的,用了一堆大师的东西来写它,比如 20 个类,工厂模式,单例,访问者,你说的。这一切都是为了一个简单的工具,结果项目中的另一个团队已经用大约 100 行 ruby​​ 代码完成了。

标签: java c++ python design-patterns


【解决方案1】:

我发现了一个非常有用的示例,说明在 java 标签下使用特定模式的方式/位置(应该不难理解):Examples of GoF Design Patterns in Java's core libraries

【讨论】:

  • 这更适合作为评论而不是答案。
【解决方案2】:

有很多库很好地利用了模式,但让我指出两个对我来说非常好的:

  • ACE (The Adaptive Communication Environment)。开源的面向对象 (OO) 框架,实现了并发通信软件的许多核心模式。
  • POCO。开源 C++ 类库和框架,用于构建在桌面、服务器和嵌入式系统上运行的基于网络和 Internet 的应用程序。

当然,正如贾斯汀所说,Boost 也可以成为学习的来源。

【讨论】:

    【解决方案3】:

    boost,一个编写良好且文档化的库,实现了多种设计模式。它是一个相当大的库,这些实现在库中使用。

    http://www.boost.org

    boost 在很多项目中都有发现,但 loki 也值得一读:

    http://sourceforge.net/projects/loki-lib/

    loki 的原作者 (Andrei Alexandrescu) 回顾了 c++ 经典现代 C++ 设计:应用的通用编程和设计模式中的许多设计细节。

    【讨论】:

    • 在 C++ 中,一个有模式(尽管这个术语不像在 java 世界中那样广泛使用),但也有一个 idioms,它们和模式一样糟糕. Boost 主要实现的是成语,而不是模式。
    • @Alexandre C。我们也有政策!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 2010-10-11
    相关资源
    最近更新 更多