web-dev-qa-db-ja.com

C ++プログラマーが知っておくべき有名なデザインパターン

可能性のある複製:
C++プログラマはどのC++イディオムを使用すべきですか?

C++ Primer、Effective C++、TC++ PLなどの本を読んだ後、いくつかの重要な設計パターンを学びたいと思います。

それでは、すべてのC++プログラマーが知っておくべき有名なデザインパターンは何ですか?

31
Prasoon Saurav

明白な答えは、有名な本の4つのギャングパターンです。これらは、あちこちにリストされているのと同じパターンです。

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

それ以外にも、Martin FowlersのWebサイトをご覧ください...

http://martinfowler.com/

そこにはかなりの部分があります-「有名な」ものはおそらく「依存性注入」です。ただし、他のほとんどはかなりドメイン固有です。

「Mixinレイヤー」は、C++にとって興味深いものです。テンプレートクラスは独自のベースをテンプレートパラメータとして使用するため、テンプレートを使用して同じ機能を多くの異なるクラスに追加したり、ライブラリにさまざまな機能を簡単に含めたり除外したりできるように構成メソッドとして使用できます。さまざまなミックスインレイヤーがある程度の「リフレクション」を実行できるように、不思議な繰り返しテンプレートトリックも使用されることがあります(元のベースは最終的な完全に構成されたクラスです)。メンバの種類など。もちろん、注意しないと、解決できない循環依存関係が発生する可能性があります。

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

19
Steve314

C++固有のもの:RAIIおよびPIMPL。

24
Michael

順不同で、私がよく見たり使用したりする4つのギャングパターンは、おそらく次のとおりです。

  • 複合
  • テンプレートメソッド
  • 抽象工場
  • シングルトン(大いに嫌われるが、どこでも)
  • ビジター
  • ビルダー
  • プロキシ
10
Drew Hall
8
CrociDB

思考パターン。それは特効薬です。

7
wilhelmtell

Head First Design Patterns を読むことをお勧めします。それは楽しい読み物です、そして、あなたは多くの一般的なデザインパターンについて学びます。

6
Nate W.