11の行動設計パターンの水平比較
動作設計パターンの主な機能は、複雑なビジネスプロセスを複数のクラスまたはオブジェクトに分解して、共同で完了することです。
シリアルナンバー | パターン名 | 構成要素 | 効果 |
---|---|---|---|
1 | テンプレートメソッドパターン | 1.抽象テンプレートクラス (抽象メソッド、具象メソッド、フックメソッド、およびテンプレートメソッドの抽象メソッド、具象メソッド、フックメソッドの呼び出しを含む) 2。具象サブクラス (抽象テンプレートに抽象メソッドとフックメソッドを実装) |
個別のアルゴリズムスケルトンと特定の操作ステップ |
2 | 戦略モード | 1.戦略クラス (対応するビジネスロジックメソッドを提供します) 2。環境クラス (コンストラクターで戦略クラスを初期化し、setStrategyメソッドを上げて戦略を変更し、ビジネスメソッドを提供し、戦略クラスのビジネスメソッドを呼び出します) |
アルゴリズムのユーザーと実装者を分離する |
3 | コマンドモード | 1.コマンドクラス (コンストラクターに実装者を取得し、executeメソッドを提供し、実装者のアクションメソッドを呼び出します) 2。実装者( ビジネスロジックを処理するアクションメソッドを提供します) 3。呼び出し元 (コンストラクターにコマンドクラスを設定し、コマンドを設定するためのsetCommandメソッドを提供し、callメソッドを提供し、コマンドクラスのexecuteメソッドを実行します) |
ビジネスの実装者と呼び出し元を分離します |
4 | 責任連鎖モデル | 1.抽象処理クラス (setNextを設定し、getNextの次の特定の処理クラスを取得するためのメソッドを提供します) 2。特定の処理クラス (要求を処理するためのメソッドを提供し、ビジネスパラメーターに従って要求を処理できるかどうかを判断し、そうでない場合は、要求を次の処理に転送します者) 3。顧客クラス (具象ハンドラーをインスタンス化し、setNextを介して各具象ハンドラーを順番にシリアル化し、最初のハンドラーの要求メソッドを呼び出します) |
個別のリクエスト送信者とリクエストプロセッサ |
5 | 状態モード | 1.環境クラス (コンストラクターで現在の状態を初期化し、現在の状態を設定および取得するためのメソッドを提供し、現在の状態のビジネスロジックメソッドを提供します) 2。抽象状態クラス (環境オブジェクトの特性状態に対応する動作をカプセル化するメソッドを提供します) 、環境クラスが呼び出す場合) 3。特定の状態クラス (抽象状態に対応する動作を実装し、状態ごとに異なる応答を行います) |
複雑な判断ロジックをさまざまな状態オブジェクトに配置して、状態オブジェクトを分離します |
6 | オブザーバーモード | 1.ターゲットオブジェクト (リストコンテナはコンストラクタで定義されます。オブザーバーオブジェクトを追加および削除するメソッドと、changeメソッド(オブザーバーオブジェクトの応答を呼び出す)を提供し ます)2。オブザーバーオブジェクト (さまざまな状態に応じて変更する応答メソッドを提供します)反応が異なります。) |
ターゲットとオブザーバーの関係を分離します。状態が変化すると、すべてのオブザーバーオブジェクトが自動的に更新されます。 |
7 | 中間モデル | 1.同僚オブジェクト (抽象クラスでsetMediumメソッドを定義し、サブクラスで受信メソッドと送信メソッドを提供します(送信メソッドでメディエーターの転送メソッドを呼び出します)) 2。メディエーターオブジェクト (登録を提供します(setMediumメソッドを呼び出します)と転送メソッド) |
オブジェクトの結合の程度を減らし、オブジェクト間の1対多の関係を1対1の関係に変換します |
8 | イテレーターモード | 1.要素を集約します (コンストラクターでリストコンテナーを定義し、オブジェクトを追加および削除するためのメソッドを提供し、反復子要素を取得するためのメソッドを提供します。) 2。反復子要素 (次の要素があるかどうかを判別するメソッドを提供し、最初の要素へのアクセスを提供します。最後の要素である各要素のメソッドは、前の要素と次の要素にアクセスするためのメソッドを提供します。) |
集約オブジェクトとトラバーサル動作を分離する |
9 | ビジターモード | 1、访问者 (提供 visit 访问方法,根据不同的元素做出不同的反应) 2、元素 (提供 accept 接收访问者方法,通常在内部调用visit,提供getName返回元素的方法) 3、对象结构 (在构造函数中定义 list 用来管理元素,可以添加、删除、遍历元素调用元素的 accept 方法) |
数据的操作(访问者)和数据元素、数据结构进行分离 |
10 | 备忘录模式 | 1、发起人 (提供set和get方法获取和设置当前状态。提供create方法创建备忘录,提供restore方法恢复备忘录); 2、备忘录 (提供set和get方法获取和设置状态); 3、管理者 (在构造函数中定义 list 用来存储状态。提供 add 方法储存备忘录,提供pop方法恢复备忘录); |
发起人、备忘录、管理者进行分离 |
11 | 解释器模式 | 1、终结符表达式 (在构造函数中定义set容器储存匹配字段。提供interpret方法判断是否在匹配字符中); 2、非终结符表达式 (在构造函数中定义传入字段。提供interpret方法判断传入字段是否在匹配字符中)。 3、环境 (在构造函数中定义匹配字段参数,实例化终结符表达式,实例化非终结符表达式,提供业务方法action根据是否匹配做出反应) |
终结符与非终结符进行分离 |