Является ли доменный объект классом, представляющим бизнес-правила?

Я столкнулся с термином «объект домена» и нашел пару определений в Google, но я просто хочу убедиться, что я правильно понимаю.

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

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


person tom w.    schedule 22.08.2009    source источник


Ответы (2)


Это будет служба домена. Объект домена может быть чем-то вроде Доход или Налоговый плательщик. Этот объект может иметь свойство Taxes, которое вызывает Domain Service для расчета суммы налогов, причитающихся, например, в соответствии с правилами.

person mbillard    schedule 22.08.2009
comment
Таким образом, объект предметной области — это существительное; служба домена - это глагол. Насколько я вас понимаю, объект домена не выполняет никаких действий сам по себе — он просто представляет некоторый набор атрибутов — и на него действует служба домена. - person tom w.; 22.08.2009
comment
Это то, что некоторые люди назвали бы анемичной моделью предметной области. Объект предметной области становится не более чем объектом передачи данных без существенного поведения. Это один из способов что-то делать, но ни в коем случае не единственный. - person duffymo; 22.08.2009
comment
@tom w: объект домена может выполнять некоторые действия, но только незначительные вычисления. Для более сложных правил, таких как расчет налогов, обычно лучше всего подходит служба домена. @duffymo: действительно, не единственный способ - person mbillard; 22.08.2009
comment
@Crossbrowser: Спасибо. Является ли ваше описание наиболее распространенным пониманием этого термина? - person tom w.; 22.08.2009
comment
@tom w: Я бы не знал, но у меня более 2 лет опыта работы в доменно-ориентированном дизайне, и именно так мы видим вещи там, где я работаю. - person mbillard; 22.08.2009
comment
@Crossbrowser - Но, как указал duffymo, и я полагаю, вы согласились (?), служба домена не является обязательным требованием? Таким образом, доменный объект может сам представлять и выполнять все налоговые правила, не обращаясь к доменной службе. Это правильно? - person tom w.; 22.08.2009
comment
@tom w: Никто не остановит тебя, но это неправильный способ ведения дел. Как я уже сказал, мои доменные объекты реализуют небольшую логику. - person mbillard; 22.08.2009

Объект домена — это любой объект, который представляет данную сущность в вашем бизнес-домене. Есть несколько вкусов этого. Однако, вообще говоря, объекты предметной области содержат данные и любые правила для моделируемой сущности. Некоторые предпочитают физически разделить эти проблемы, чтобы бизнес-правила не обрабатывались в одном объекте с данными. Какую бы реализацию вы ни выбрали, объекты предметной области логически группируют данные и правила по модульному принципу.

person Community    schedule 22.08.2009