0

http://en.wikipedia.org/wiki/Visitor_patternで訪問者パターンについて読みました

このパターンの最初の理解は、訪問者パターンがブリッジ/戦略パターンと同じであるという印象を与えました。

では、その具体例がそのような印象を与えているのでしょうか? 誰かが違いを説明できますか; Javaでの明確な例で可能性がありますか?

4

2 に答える 2

0

橋:

ブリッジは、抽象化を実装から切り離します。抽象化と実装の両方が独立して変化する可能性があります。

  1. ブリッジ実装者インターフェースを作成する
  2. 具体的なブリッジ実装者クラスを作成する
  3. インターフェイスを含む抽象クラスを作成します(ここでは構成が重要です)
  4. 抽象クラスを実装する具象クラスを作成する

例を探している場合は、チュートリアルポイントの記事をご覧ください。

ビジター:

Visitor を使用すると、操作対象の要素のクラスを変更せずに、新しい操作を定義できます。

GOF 定義から:

実行時に 1 つ以上の操作を一連のオブジェクトに適用できるようにし、操作をオブジェクト構造から切り離します。

実装は次のように進みます。

  1. 集約ノード階層内の具象派生クラスごとに、抽象基本クラス内にVisitor純粋仮想メソッドを定義するクラス階層を作成します。visit()
  2. visit()メソッドは、単一の引数 (元の Element 派生クラスへのポインターまたは参照) を受け入れます。
  3. Visitorサポートされる各操作は、階層の具体的な派生クラスでモデル化されます。Visitor 基本クラスで宣言されたvisit() メソッドは、元の実装の「型クエリとキャスト」コードを適切なオーバーロードされた visit() メソッドに割り当てることによって、各派生サブクラスで定義されるようになりました。
  4. accept()Element 階層の基本クラスに1 つの純粋仮想メソッドを追加します。

動作する Java コードについては、チュートリアル ポイントの記事とdzoneの記事をご覧ください。

ストラテジー:

ストラテジーを使用すると、実行時に (アルゴリズムのファミリーから) あるアルゴリズムから別のアルゴリズムに動的に切り替えることができます

詳細については、この SE の質問をご覧ください。

戦略パターンの実例

于 2016-02-16T08:23:39.913 に答える