Объектно-ориентированный проектный объект стоимости, как обеспечить уникальное значение - PullRequest
0 голосов
/ 01 июня 2010

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

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

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

Даррен

Ответы [ 3 ]

0 голосов
/ 01 июня 2010

Вы хотели бы использовать что-то вроде Guid или UUID.Как именно вы будете его генерировать, зависит от того, какой язык вы используете для своего приложения.

0 голосов
/ 02 июня 2010

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

0 голосов
/ 01 июня 2010

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

...