Это достаточно хорошая абстракция или я могу сделать лучше? - PullRequest
0 голосов
/ 17 декабря 2010

Требование: Требование: получить (execute ()) набор источников данных. Тяги упорядочены , могут быть сгруппированы в небольшие подгруппы.

Дизайн: Каждое извлечение абстрагируется как Шаг. Подгруппа представлена ​​как WaterFallStep, потому что выборка каждого из источников данных в группе является условной и следует модели водопада, т. Е. Если 1-й выбор источника данных в группе успешен, то я вырываюсь из группы.

Вопросы

  1. Это достаточно хорошая абстракция, или я могу сделать лучше?
  2. Как представить это в JPA 2? Я знаю, что мы можем использовать дескрипторы для сопоставления наследования, но моя главная проблема - это отношение 1-ко-многим между WaterFallStep-to-BasicStep

Спасибо.

alt text

1 Ответ

1 голос
/ 18 декабря 2010

Я думаю, что вы должны использовать здесь составной шаблон.Я бы сказал, что каждый шаг должен обрабатывать ссылку на набор шагов.Если вы хотите, вы можете переместить эту коллекцию в ваш WaterfallStep, но она все равно должна быть коллекцией шагов, а не базовых шагов и не абстрактных шагов.

Что касается JPA, вы должны использовать аннотацию OneToMany.Есть много примеров использования этой аннотации.

Удачи

...