1

これはどんなデザインパターンなのか気になりました。

私はメソッドを持っています.dao.read()と言います。

dao.read(a) {
    b = a.moreFields
    b.readField1();  // I want to move these calls ...
    b.readField2();
    b.readField3();

    a.rootField1();
}

その read メソッドをこれにリファクタリングするとしましょう:

dao.read(a) {
    marshal(a.b)
    a.rootField1()

    marshal(b) {
      b.readField1();  // I want to move these calls ...
      b.readField2();
      b.readField3();      
    }
}

これは設計パターンへのリファクタリングですか? または、単にリファクタリングします。私はそのタイプのリファクタリングを頻繁に行う傾向があり、名前を付けたいと思ったので質問しています。そのメソッド マーシャルをデリゲート クラスに移動した場合、それはデリゲートだと思います。

4

2 に答える 2

0

あなたが持っているのはデザインパターンではなく、ヘルパーメソッドです。

于 2012-06-28T13:30:41.890 に答える
0

デザインパターンではありません。せいぜいそれは、OOP の基本機能である「ポリモーフィズム」です。オブジェクト a のクラス A とオブジェクト b のクラス B のメソッドとして処理を追加できます。ちょっとインターフェースを共有します

interface Marshall {
  void marshall(<...>);
}

...しかし、異なるクラスになります。

それをしたら、明らかな DP は、A と B の両方を含むコンポジットを使用することです。

composite.marshall(<....>);
于 2012-06-28T13:19:42.067 に答える