【问题标题】:C++ class design patterns in open source projects开源项目中的 C++ 类设计模式
【发布时间】:2011-02-23 12:21:31
【问题描述】:

我最近开始学习设计模式。我已经了解了一些模式的基础知识。现在我想熟悉一些使用这些模式的真实代码示例。有人可以指出一些使用设计模式的开源项目吗?我想看看设计模式是如何在现实世界的代码中使用的。

【问题讨论】:

  • 你可以看看这个类似的问题:stackoverflow.com/questions/5039196/…
  • “如果我是国王,我会开始斩首那些写工厂来制造工厂的人。这将共同为我们节省数十亿美元。每次你制造一个单身人士,上帝都会扼杀一个开始-向上,如果你认为你已经使它成为线程安全的,那就两个。” Landon Dyer
  • 我要感谢大家的良好参考!!是的,我觉得应该避免单身人士。谁能指出我们如何排除单身?

标签: c++ design-patterns


【解决方案1】:

以下是一些链接。 JUnit Cookbook 提供了很多模式的精彩示例 - 非常值得检查。

  1. JUnit Cook's Tour
  2. Vince Huton's DP
  3. Design PAtterns

希望对您有所帮助。

【讨论】:

  • 他的问题被标记为 C++。
  • 是的 - 但模式与语言无关 - 现实生活中的例子可以来自任何地方。
  • @Nilesh:仅当语言共享功能时。他将如何学习模板元编程模式或内存管理模式或异常安全模式?绝对合适。
  • @DeadMG:看看这个问题,它非常通用,而且似乎主要围绕 GoF 模式。而且他现在已经开始学习设计模式——他应该从高端模式开始吗?投票时请小心。
  • @Nilesh:这个问题没有提到 any 模式或 GoF,你怎么能从中得出任何 GoF 结论?事实上,C++ 和 Java 实际上并没有共享那么多语言特性,并且有一些非常不同的最佳实践,而且 Java 设计模式对于 C++ 不会特别有用。此外,不要通过暗示我对我的否决票粗心来侮辱我。否决票是我个人的判断。暗示我发错是一回事,粗心又是另一回事。什么,你认为我是因为意外或其他原因而对你投了反对票吗?
【解决方案2】:

嗯,这有点自吹自擂,但我正在从事的一个开源项目广泛使用了factory method pattern。我将模式本身的核心here 实现为一组模板,定义一个工厂here,为该工厂注册一个子类here,并使用工厂实例化对象here

【讨论】:

    【解决方案3】:

    恕我直言,ACE (Adaptive Communication Environment) 就是一个很好的例子。它还使用带有设计模式的 c++ 模板,这也很实用。该框架以Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects一书为基础,这本书也是设计模式的一个很好的参考,除了GoF

    【讨论】:

      【解决方案4】:

      在您可能正在阅读的 GOF 的书中,对于每个设计模式,他们都提供了一个真实的代码示例,我的意思不是示例代码,而是他们实际上说明了每个 DP 在哪些项目中使用。这些项目大多是开源的。高温

      【讨论】:

      • 请注意,GoF 书中的 C++ 示例并不代表现代 C++
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 2011-06-29
      • 1970-01-01
      相关资源
      最近更新 更多