1

次のシナリオで使用する最適なパターンについてアドバイスを求めています。

ドメイン レベル オブジェクトから UI DTO への変換を伴う

問題のオブジェクトについて、BeanUtilsまたはPropertyUtilsほとんどの変換を実行します。

ドメイン レベルのオブジェクトに「type」属性が含まれています。この型に基づいて、DTO の「ラベル」プロパティをわかりやすい名前に設定する必要があります。

  • したがって、タイプ AAA の場合、次のようにラベルを作成する必要があります。property1 + "-" + property2
  • タイプ BBB の場合、次のようにラベルを作成する必要があります。property2 + "/" + property1
  • タイプ CCC の場合、データベース クエリに基づいてラベルを作成する必要があります。

(上記のロジックは単純化しすぎています)

考えられるすべての設計パターンを調査することなく、次のパターンを念頭に置いています。

  1. タイプごとに 1 つずつ、多数の LabelCreationStrategies を作成します。
  2. 私のオブジェクト変換ヘルパーで、「タイプ」を戦略にマップするマップを挿入します
  3. したがって、オブジェクトの変換が行われると、適切な戦略が見つかり、最も適切なラベルが作成されます。

ここで機能する他のパターンは何ですか?

ありがとう

4

2 に答える 2

0

戦略パターンを使用する

 public abstract class AbstractClass{   //or interface 
       public abstract void print();
    }


    public class AAA extends AbstractClass{

        @Override
        public void print(){
            System.out.println("AAA");
        }
    }

    public class BBB extends AbstractClass{

        @Override
        public void print(){
            System.out.println("BBB");
        }
    }
于 2012-08-18T14:25:34.410 に答える
0

Type を、適切な戦略を生成する方法を知っている実際のオブジェクトに変更できます。

例えば:

 public interface Type {
   NamingStrategy getNamingStrategy();
 }

 public class AAA implements Type {
   public NamingStrategy getNamingStrategy() {
     return new DatabaseQueryStrategy();
   }

   public String toString() {
     return "AAA";
   }
 }
于 2012-08-19T00:43:52.740 に答える