2017-11-19 4 views
-2

とのマップに基づいてクラス構造を作成します。私はマップを持っている複合キーと値

Map<Map<String,Map>, List<Map<String, String>>> map = new HashMap(); 

次のようなデータ構造をリファクタリングし、OOPの原理を使用してクラス構造を作成する最も簡単な方法は何ですか?

+2

達成したいことをさらに説明できますか? – JAAAY

答えて

1

あなたは、あなたのリファクタリングを開始する前に達成するために何をしたいのシンプルで明確なイメージを持っている必要があります。

  1. あなたはブレークダウンすることができ、あなたのコレクション内のデータをビジネスエンティティ(発注、製品、顧客に、 ...)?

  2. これらのデータ間の関係は何ですか?商品を含む注文にリンクされたユーザーのリストである可能性があります。

  3. 正しいコレクションを使用してください。 HashMapは、キーと値のペアの順序付けられていないコレクションです。あなたはそのキーで要素にアクセスします(一つのキーポイントから一つの値へ、重複キーなしで)。 ArrayListは、値が順序付けられたコレクションのみです。整数インデックスで要素にアクセスします。あなたは、キーによってフェッチは、例えば必要とされていないことを決めたので、あなたは注文のリストにそれをリファクタリングでき

    { 
        "Order-Ref-01": { 
        "id": "123456" 
        "client": "MrFooBar" 
        "destination": "USA" 
        "type": "Electronic" 
        }, 
        "Order-Ref-02": { 
        //... 
        } 
    } 
    

    HashMap<String, HashMap<String, String>> map = new HashMap<String, HashMap<String, String>>(); 
    

    とその表現:以下のコレクションを考えると

List<Order> orders = new ArrayList<>(); 

そして、あなたは2+ビジネスエンティティとして機能するクラスを作成することができます。

class Client { 
    private String id; 
    private String name; 
    // ... 
} 

class Order { 
    private String id; 
    private Client client; 
    private String destination; 
    private String type; 
    // ... 
} 

それはすべて破壊ダウンあなたのデータ構造をあなたのビジネスエンティティおよびそれらの関係を表す小さな部分にについてです。

関連する問題