http://en.wikipedia.org/wiki/Visitor_patternで訪問者パターンについて読みました
このパターンの最初の理解は、訪問者パターンがブリッジ/戦略パターンと同じであるという印象を与えました。
では、その具体例がそのような印象を与えているのでしょうか? 誰かが違いを説明できますか; Javaでの明確な例で可能性がありますか?
http://en.wikipedia.org/wiki/Visitor_patternで訪問者パターンについて読みました
このパターンの最初の理解は、訪問者パターンがブリッジ/戦略パターンと同じであるという印象を与えました。
では、その具体例がそのような印象を与えているのでしょうか? 誰かが違いを説明できますか; Javaでの明確な例で可能性がありますか?
橋:
ブリッジは、抽象化を実装から切り離します。抽象化と実装の両方が独立して変化する可能性があります。
例を探している場合は、チュートリアルポイントの記事をご覧ください。
ビジター:
Visitor を使用すると、操作対象の要素のクラスを変更せずに、新しい操作を定義できます。
GOF 定義から:
実行時に 1 つ以上の操作を一連のオブジェクトに適用できるようにし、操作をオブジェクト構造から切り離します。
実装は次のように進みます。
Visitor
純粋仮想メソッドを定義するクラス階層を作成します。visit()
visit()
メソッドは、単一の引数 (元の Element 派生クラスへのポインターまたは参照) を受け入れます。Visitor
サポートされる各操作は、階層の具体的な派生クラスでモデル化されます。Visitor 基本クラスで宣言されたvisit
() メソッドは、元の実装の「型クエリとキャスト」コードを適切なオーバーロードされた visit() メソッドに割り当てることによって、各派生サブクラスで定義されるようになりました。accept()
Element 階層の基本クラスに1 つの純粋仮想メソッドを追加します。動作する Java コードについては、チュートリアル ポイントの記事とdzoneの記事をご覧ください。
ストラテジー:
ストラテジーを使用すると、実行時に (アルゴリズムのファミリーから) あるアルゴリズムから別のアルゴリズムに動的に切り替えることができます。
詳細については、この SE の質問をご覧ください。