2016-05-03 1 views
0

У меня есть сложная модель домена, которая взаимодействует с оборудованием. Фактически отсутствует пользовательский интерфейс пользователя или взаимодействие с другими системами, отличными от аппаратного обеспечения.Спящий режим с моделью домена, но нет клиента

Модель домена постоянно управляет оборудованием, корректируя его аспекты, чтобы он работал эффективно.

Я хочу сохранить некоторые ключевые решения, которые создает модель домена в базе данных с Hibernate. Как я могу использовать модель домена, если нет «прикладного уровня». Я вынужден добавить некоторые сведения о Hibernate в модель домена? Хорошо ли, что модель домена напрямую взаимодействует с Hibernate в этом случае?

+0

Откуда берутся ваши входы? Определены ли «случаи использования» или задачи домена, выполняемые кем-то или кем-то? В какой момент вы загружаете материал из базы данных? – guillaume31

+0

Нет, это настоящее приложение для объектно-ориентированных приложений с богатым доменом. «Использованные случаи» не используются для определения функциональности системы. Модель домена, как я уже упоминал, сама принимает решения. Они не созданы людьми. Вы говорите, что должно быть? – Jon

+0

Не обязательно. Уровень приложения просто принимает входные данные и организует вызовы для объектов модели домена на основе этих входов. В конце процесса он сохраняет объекты обратно в БД. Более подробное описание вашей проблемы может помочь рассказать, попадает ли ваша система под эту модель или нет. – guillaume31

ответ

0

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

Возможно, вы можете выяснить, где находятся швы, рассматривая, как писать автоматические тесты для разных сценариев. То есть, если вы собираетесь имитировать аппаратное обеспечение, какие биты вы держите, а какие вы заглушите или замените?

Вы, вероятно, хотите, чтобы написать тест, который выглядит как

Given (these previous observations) 
When (this observation happens) 
Then (the domain model decides the right thing) 

«Другой материал» (на самом деле слушая аппаратные средства, на самом деле отправки команд в контроллер), вероятно, в компоненте приложения. Вот где я ожидаю, что интерфейс с Hibernate будет.

+0

Вы говорите, что программное обеспечение * должно иметь приложение «слой»? Нет. Можно было бы написать тесты, издеваясь над оборудованием. Но это был вопрос о том, чтобы сохранить решения, сделанные интеллектуальной моделью домена, в базу данных? – Jon

Смежные вопросы