Table of Contents
設計パターンは、一般的なプログラミングの問題に対する実証済みのソリューションです。 C++では、コード組織、再利用可能な、および保守性を向上させることができます。 この記事では、一般的な設計パターンの実用的な例と、実際の問題の解決に応用できる方法について説明します。
単トンパターン
シングルトンパターンは、クラスがインスタンスを1つだけ持つことを確認し、グローバルにそのアクセスポイントを提供します。 構成設定やロギングシステムなどの共有リソースを管理するのに便利です。
導入事例:
コード:
ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオン ログオフ ログ ログ ログオン ログ ログオン ログ ログ ログオン ログ ログ ログ ログオン ログ ログ ログ ログ ログ ログ ログ ログオン ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ ログ
工場方法パターン
Factory Method パターンはオブジェクトを作成するためのインターフェイスを定義しますが、サブクラスは生成されるオブジェクトの型を変更することができます。緩いカップリングとスケーラビリティを促進します。
事例:異なる種類の文書を作成
コード:
ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント: ドキュメント:
Observer パターン
Observer パターンは、オブジェクトが状態を変更するときにオブジェクト間で 1 つから 1 つの依存関係を確立します。すべての依存関係が自動的に通知されます。イベント処理システムを実行するのに便利です。
例:複数のオブザーバーが変更に反応するシンプルなイベントシステム。
コード:
'cpp #include #include #include class Observer { パブリック: virtual void update() = 0; virtual ~Observer() {} }; class 件名 { プライベート: std:: ベクトル オブザーバー、 パブリック: void アッファ(Observer*オブザーバー) { オブザーバー。push back(observer) { オブザーバー { オブザーバー { オブザーバー { オブザーバー} { オブザーバー { オブザーバー} { オブザーバー} { オブザーバー} { オブザーバー} { オブザーバー} { オブザーバー} { オブザーバー} { オブザーバー { オブザーバー { オブザーバー { オブザーバー { オブザーバー { オブザーバー { オブザーバー { オブザーバー { オブザーバー { オブザーバー { オブザーバー} { オブザーバー { オブザーバー { オブザーバー { オブ オブザーバー} { オブ オブ オブザーバー { オブ オブ オブ オブ オブ オブ