可能性のある複製:
C++プログラマはどのC++イディオムを使用すべきですか?
C++ Primer、Effective C++、TC++ PLなどの本を読んだ後、いくつかの重要な設計パターンを学びたいと思います。
それでは、すべてのC++プログラマーが知っておくべき有名なデザインパターンは何ですか?
明白な答えは、有名な本の4つのギャングパターンです。これらは、あちこちにリストされているのと同じパターンです。
http://en.wikipedia.org/wiki/Design_Patterns
それ以外にも、Martin FowlersのWebサイトをご覧ください...
そこにはかなりの部分があります-「有名な」ものはおそらく「依存性注入」です。ただし、他のほとんどはかなりドメイン固有です。
「Mixinレイヤー」は、C++にとって興味深いものです。テンプレートクラスは独自のベースをテンプレートパラメータとして使用するため、テンプレートを使用して同じ機能を多くの異なるクラスに追加したり、ライブラリにさまざまな機能を簡単に含めたり除外したりできるように構成メソッドとして使用できます。さまざまなミックスインレイヤーがある程度の「リフレクション」を実行できるように、不思議な繰り返しテンプレートトリックも使用されることがあります(元のベースは最終的な完全に構成されたクラスです)。メンバの種類など。もちろん、注意しないと、解決できない循環依存関係が発生する可能性があります。
C++固有のもの:RAIIおよびPIMPL。
順不同で、私がよく見たり使用したりする4つのギャングパターンは、おそらく次のとおりです。
設計パターン:再利用可能なオブジェクト指向ソフトウェアの要素 を読んでください。
思考パターン。それは特効薬です。
Head First Design Patterns を読むことをお勧めします。それは楽しい読み物です、そして、あなたは多くの一般的なデザインパターンについて学びます。