C++设计模式详解

15

感谢您宝贵的时间。

我想学习c++设计模式。我在网上搜索了一下,但是没有找到有关设计模式更详细的文档。虽然我找到了很多好的详细信息,但这些信息分散在不同的网址中。我只需要一个地方就可以获得所有关于c++设计模式的信息,这样就能更好地了解c++设计模式下的所有内容。

以下是我在学习设计模式时必需的内容:

  • 我们为什么需要c++设计模式
  • 什么是设计模式
  • 它们如何分类(我们可以说是概述)
  • 在实现这些模式时的良好方法
  • 设计模式的优缺点
  • 设计模式中的新功能。

请大家推荐包含上述要点的好资料。也建议我,是否有任何好的论坛可供设计模式讨论。

感谢您的建议!!!

-Pravin


http://en.wikibooks.org/wiki/C++_Programming - Anycorn
你为什么想学习C++设计模式? - fredoverflow
@FredOverflow:是的...在阅读技术文档后,我了解到设计模式是一个常见的概念...我认为某些主题在C++中实现方式不同。 - pravin
5个回答

11

Vince Huston拥有一个不太可靠的网站......但它很好地展示了GOF书中提到的所有C++设计模式的实现。

来看看吧 :)

每种模式都有几个部分:

  • 名称(感谢Lou指出:P)
  • 意图
  • 问题(解决的问题)
  • 结构概述(带有漂亮的图表)
  • 讨论
  • 结构(带有简略的图表)
  • 示例
  • 检查列表(以便您知道何时应用它)
  • 之前/之后(看它在行动中如何运作)
  • 经验法则(与其他模式进行比较,为什么它们不同,如何组合它们)

这非常完整,是一个非常方便的参考资料,但是一旦掌握了一个模式,您应该能够自己编写实现,并且甚至可以混合使用模板:)


不要忘记“名称”——这是最重要的部分。名称有助于传播想法并使其易于讨论。 - Lou Franco
@Lou Franco:没错,没有一个合适的名称,其他的信息就只是一堆无用的东西 :) - Matthieu M.
@Lou Franco和@Matthieu M. - 你不能在简历上放很多信息,但是你可以放“适当的名称”-这样更有用 :) - ra170

1
我完全同意JD的看法,许多有价值的设计模式并不是语言特定的。
然而,模式的实现通常是与语言相关的。我发现Alexandrescu的书《现代C++设计》非常有趣,他使用C++模板来实现像Singleton、Visitor等模式的通用版本。

1
在之前的一个问题中,我发现了sourcemaking,那里至少有基本设计模式(和反模式)的很好概述。我不知道是否有完整的设计模式概述,所以我猜我会在这里寻求更好的答案...

0

设计模式通常不特定于一种编程语言,建议您谷歌特定的设计模式,例如中介者模式、外观模式等...共有23种基本模式。

实际上,选择什么模式取决于您编写程序的意图。许多好书详细讨论每个模式的真实生活应用。

阅读原始书籍《设计模式:可重用面向对象软件元素》的谷歌图书版本,以进行深入讨论。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接