Entity, Value Object или что это такое и где оно должно быть? - PullRequest
0 голосов
/ 13 февраля 2010

У меня есть класс под названием «Инструмент». Инструмент имеет такие свойства, как: имя, описание и некоторые другие. Инструмент особенный, потому что Имя и другие доступны только для чтения, но описание может быть изменено пользователями.

Количество инструментов постоянно и известно во время разработки. Это не Value Object, потому что мне нужно запросить их и показать пользователям, где они могут обновить Description. Так что это своего рода сущность, но пользователи не могут создавать новые инструменты.

Я ищу возможность взять Инструмент вот так:

Tool.SomeGreatTool

где SomeGreatTool - инструмент с именем «Какой-то отличный инструмент», и описание должно быть таким же, как указано пользователем.

Джимми Богард имеет почти идеальное решение , но NHibernate ничего не знает о SomeGreatTool и Description будет нулевым.

Как изменить решение Джимми или как это сделать по-другому? Как создать SomeGreatTool из базы данных?

1 Ответ

1 голос
/ 17 февраля 2010

Мы по-прежнему рассматриваем эти виды полупостоянных данных как своего рода общеизвестные объекты. Мы создаем объекты-значения / классы перечисления для типов инструментов, но отделяем типы инструментов от инструментов. Вам все еще нужно пойти в постоянное хранилище, чтобы сделать что-то вроде ToolRepository.Find (ToolType.Screwdriver). Даже если для каждого типа инструмента будет только один инструмент, вы все равно разделите эти два понятия.

...