免責事項: この一連のブログの参考資料は、Cheng Jie 著の「Dahua Design Pattern」です。
コマンド パターン: ソフトウェア システムでは、通常、「動作要求者」と「動作実装者」は「密結合」を示します。しかし、「記録、元に戻す/やり直し、トランザクション」やその他の動作の処理など、状況によっては、変更に抵抗できないこの種の密結合は不適切です。この場合、「動作要求者」と「動作実装者」をどのように分離すればよいでしょうか?一連の動作をオブジェクトに抽象化し、オブジェクト間の疎結合を実現します。これがコマンドパターンです。
クラス図:
役割分析:
抽象コマンド: コマンドのインターフェイスを定義し、実行メソッドを宣言します。收 受信 コマンド受信者: 受信者、コマンドの対象が実際に実行されます。コマンドに必要な対応する機能を実装できる限り、どのクラスもレシーバーになることができます。
。ここは、クライアントが実際にコマンドをトリガーし、対応する操作を実行するようコマンドに要求する場所であり、コマンド オブジェクトへの入り口に相当します。
through through ' s through out through ‐ through off ‐ ‐ ‐ ‐ および ‐ でクライアントコードを呼び出します:
該当するシナリオ:
1. システムが必要とするものリクエストの呼び出し元とリクエストの受信者を切り離し、呼び出し元と受信者が直接対話しないようにします。
2. システムはリクエストを指定し、リクエストをキューに入れ、さまざまなタイミングでリクエストを実行する必要があります。
3. システムは、コマンドの元に戻す (Undo) 操作と回復 (Redo) 操作をサポートする必要があります。
利点
1. オブジェクト間の結合を軽減します。
2. 新しいコマンドをシステムに簡単に追加できます。
3. 組み合わせたコマンドの設計が容易になります。
4. 同じメソッドを呼び出して異なる関数を実装する
欠点
コマンド モードを使用すると、一部のシステムで特定のコマンド クラスが多すぎる可能性があります。コマンドごとに特定のコマンド クラスを設計する必要があるため、システムによっては多数の特定のコマンド クラスが必要になる場合があり、これがコマンド パターンの使用に影響します。
私のビデオコースをフォローしていただきありがとうございます。アドレスは次のとおりです、ありがとうございます。
PHP オブジェクト指向設計パターン