Достаточно ли это хорошая абстракция или я могу сделать лучше?

StackOverflow https://stackoverflow.com/questions/4474666

  •  11-10-2019
  •  | 
  •  

Вопрос

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

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

Вопросы

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

Спасибо.

alt text

Это было полезно?

Решение

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

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

Удачи вам

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top