Операторы случая с переключателем - случай или если-иначе - лучший дизайн? ⇐ JAVA
Операторы случая с переключателем - случай или если-иначе - лучший дизайн?
Я пытаюсь объяснить свою проблему с дизайном на примере.
Предположим, у меня 5 родителей [1,2,3,4,5]. У каждого родителя n детей. дети похожи на [a,b,c,d,e,f].
Я пытаюсь что-то написать
Map Children = ParentDataHolder.getParent(parentType).getChildren(); переключатель (родительский тип) { Дело 1: если(partent1.contains(childType1)){ } //Аналогично для всех дочерних типов случай 2: случай 3: ....... } Здесь родительские типы фиксированы. Дочерние типы динамичны. Я вхожу в карту. Для каждой карты мне нужно проверить, присутствует ли ребенок. Если да, то мне придется принять меры в соответствии с типом дочернего элемента.
Какой дизайн лучше? Вышеуказанный дизайн мне не нравится.
Есть идеи?
РЕДАКТИРОВАТЬ:
parentHolder — это объект, который имеет методы для получения родительского типа и дочерних типов. например:
{ родительский тип: '1', дети:{ "a":"fileOne.xml", "c" : "fileTwo.gz" } }
После того как я получил этот json, я сохраняю дочерние значения в Map, а затем получаю родительский тип и перехожу к условию переключения.
Внутри случаев переключения мне приходится применять логику для детей. В приведенном выше примере есть двое детей. В некоторых других случаях родительский тип 1 будет иметь дочерние элементы a,b,c. Так что это должно быть общим.
Я пытаюсь объяснить свою проблему с дизайном на примере.
Предположим, у меня 5 родителей [1,2,3,4,5]. У каждого родителя n детей. дети похожи на [a,b,c,d,e,f].
Я пытаюсь что-то написать
Map Children = ParentDataHolder.getParent(parentType).getChildren(); переключатель (родительский тип) { Дело 1: если(partent1.contains(childType1)){ } //Аналогично для всех дочерних типов случай 2: случай 3: ....... } Здесь родительские типы фиксированы. Дочерние типы динамичны. Я вхожу в карту. Для каждой карты мне нужно проверить, присутствует ли ребенок. Если да, то мне придется принять меры в соответствии с типом дочернего элемента.
Какой дизайн лучше? Вышеуказанный дизайн мне не нравится.
Есть идеи?
РЕДАКТИРОВАТЬ:
parentHolder — это объект, который имеет методы для получения родительского типа и дочерних типов. например:
{ родительский тип: '1', дети:{ "a":"fileOne.xml", "c" : "fileTwo.gz" } }
После того как я получил этот json, я сохраняю дочерние значения в Map, а затем получаю родительский тип и перехожу к условию переключения.
Внутри случаев переключения мне приходится применять логику для детей. В приведенном выше примере есть двое детей. В некоторых других случаях родительский тип 1 будет иметь дочерние элементы a,b,c. Так что это должно быть общим.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение