C ++デザインパターン
ソフトウェア設計パターンは、オブジェクト指向の設計環境で何度も発生する問題に対する一般的な再利用可能な解決策です。ソースコードに直接変換できるのは完成したデザインではありませんが、問題を解決する方法のテンプレートです。それらを、目的によって作成された(インスタンス化プロセスを要約)、構造(クラスとオブジェクトがより大きな構造を形成するように構成されている方法)、および行動パターン(オブジェクト間の責任の割り当て)に分類できます。
創造的なパターン
- 抽象的な工場、製品オブジェクトの家族
- ビルダー、複合オブジェクトがどのように作成されるか
- 工場法、インスタンス化されたオブジェクトのサブクラス
- プロトタイプ、インスタンス化されたオブジェクトのクラス
- シングルトン、クラスの唯一のインスタンス
構造パターン
- アダプター、オブジェクトへのインターフェイス
- ブリッジ、オブジェクトの実装
- オブジェクトの複合、構造、構成
- デコレーター、サブクラス化のないオブジェクトの責任
- ファサード、サブシステムへのインターフェース
- フライ級、オブジェクトのストレージコスト
- プロキシ、オブジェクトへのアクセス方法(その場所)
行動パターン
- 責任の連鎖、要求を満たすことができるオブジェクト
- コマンド、リクエストがいつ、どのように満たされるか
- 通訳、文法、言語の解釈
- イテレーター、集約の要素にどのようにアクセスするか
- メディエーター、どのオブジェクトとどのオブジェクトが相互作用しますか
- 記念、どの個人情報がオブジェクトの外に保存されているか、そしていつ
- オブザーバー、依存するオブジェクトが最新の状態にとどまる方法
- 状態、オブジェクトの状態
- 戦略、アルゴリズム
- テンプレートメソッド、アルゴリズムの手順
- 訪問者、クラスを変更せずにオブジェクトに適用できる操作
他の言語
私のリポジトリでは、言語でもデシンパターンの実装を見つけることができます
- C ++の設計パターン
- Javaのデザインパターン
- Pythonの設計パターン
参照
このリポジトリの設計パターンはに基づいています
- 「ギャングオブフォー」によるデザインパターン
- 最初に頭:デザインパターン
- ウィキペディア