C++程序员应该知道的着名设计模式

Pra*_*rav 32 c++ design-patterns

可能重复:
C++程序员应该使用哪些C++习语?

在阅读了C++ Primer,Effective C++和TC++ PL等书籍后,我想学习一些重要的设计模式.

那么,每个C++程序员应该知道的着名设计模式是什么?

Mic*_*ael 24

C++ - 特定的:RAII和PIMPL.


Ste*_*314 19

显而易见的答案是着名书籍中的Gang of Of Four模式.这些是遍布整个地方的相同模式.

http://en.wikipedia.org/wiki/Design_Patterns

除此之外,看看Martin Fowlers网站......

http://martinfowler.com/

那里有一点点 - "着名的"可能是"依赖注入".但是,大多数其他人都非常具体.

对于C++,"Mixin层"可能很有趣.模板类将其自己的基础作为模板参数,以便模板可用于向许多不同的类添加相同的功能,或作为组合方法,以便可以轻松地为库包含/排除各种功能.有时会使用奇怪的重复模板技巧(原始基础是最终完全组合的类),因此各种mixin层可以做一定程度的"反射",因此中间方法可以用完全组合来定义成员类型等.当然,如果你不小心,它可能有点容易出现无法解决的循环依赖.

http://portal.acm.org/citation.cfm?id=505148


Dre*_*all 10

没有特别的顺序,我看到和使用最多的四人帮模式可能如下:

  • 综合
  • 模板方法
  • 抽象工厂
  • 单身人士(非常讨厌,但无处不在)
  • 游客
  • 生成器
  • 代理


Cro*_*iDB 8

阅读设计模式:可重用面向对象软件的元素.

  • 这不回答我的问题. (7认同)
  • @Prasoon Saurav:这不是一个*设计模式书.这是*设计模式书.它的作者也被称为四人帮. (3认同)
  • @Greyfade:好的.我接受了史蒂夫的回答,因为我认为只有他的回答是"完整的":) (3认同)
  • @Prasoon Saurav:是的,确实如此。 (2认同)

wil*_*ell 7

思维模式.这是一颗银弹.


Nat*_* W. 6

我建议阅读Head First Design Patterns.这是一个有趣的阅读,你将了解很多常见的设计模式.