私は、私の設計上の問題について例を挙げて説明しようとしています。switch-caseまたはif-else-bestデザインのcase文?
私は5人の親[1,2,3,4,5]がいるとします。各親にはn人の子供がいます。子供は[a、b、c、d、e、f]のようなものです。私はここで何か
Map<String, String> children = parentDataHolder.getParent(parentType).getChildren();
switch(parentType){
case 1:
if(partent1.contains(childType1)){
}
//Similarly for all child types
case 2:
case 3:
.......
}
を記述しようとしています
、親タイプが固定されています。子タイプは動的です。私は地図を取得しています。各地図について、子供がいるかどうかをチェックする必要があります。もしそうなら、私は子供のタイプに応じて行動しなければならない。
どのデザインが優れていますか?上記のデザインは私のためによく見えません。
アイデア?
EDIT:
parentHolderは、親タイプと子タイプを取得するためのメソッドを持つオブジェクトです。 例えば:私はこのJSONを受け取ったら、私はMap
で子供値を格納していますし、私はparentTypeを取得していますし、状態を切り替えるために渡す
。
スイッチのケースの中で、子供用のロジックを適用する必要があります。上の例には2つの子があります。その他のケースでは、parentType 1の子としてa、b、cが使用されます。だからそれは一般的なものでなければならない。
これはあまりに抽象的であいまいです。 'Parent'と' Child'のクラス定義を表示し、 'parentType'が何であるかを説明してください。質問は現在の状態では答えることができません。 –
@ジムガリソン私は編集中です。お待ちください。 –
それぞれの親/子の組み合わせが別々のロジックによって処理される場合、あなたが持っているものはすべてIMOで悪くないです。そうであれば、そのような論理を指定することは避けられません。 –