Объект дизайна, управляемая доменом, как обеспечить уникальное значение

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

Вопрос

Я строю создатель анкеты. Анкета состоит из разделов, разделов состоит из страниц, а страниц состоит из вопросов. Анкета - это совокупный корень.

В разделах, страницах и вопросах могут быть то, что называются короткой, которые должны быть уникальными в анкете (но не уникальные в базе данных, следовательно, они не являются строго идентичностью). Я намеревался сделать шорткод объектом Value и хотел включить деловое правило, что оно должно быть уникальным в вопроснике, но я не уверен, как это обеспечить. Насколько я понимаю, объект Value не должен получить доступ к репозиторию или уровню сервиса, так как он узнает, уникален ли он?

Спасибо за помощь.

Даррен

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

Решение

Вы можете назначить ответственность за создание шорт -кодов в анкету. Это может быть основано на простом счетчике, встроенном в объект вопросника. Каждая сущность, которая хочет создать шорткод, назвал бы метод NextshortCode () его содержащей анкеты для получения следующего уникального (в сфере текущего анкеты) значение короткого кода.

Другие советы

Очевидно, что вам понадобится поле PK в базе данных. Как вы реализуете, это зависит от вас, но если бы это был я, я бы перенесла поле PK в ваш объект Value, чтобы с ним обрабатывались автоматически.

Вы хотели бы использовать что -то вроде Гидо или uuid. Точно, как вы бы генерировали, это будет зависеть от того, какой язык вы используете для своего приложения.

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