Анемичная Модель предметной области означает, что Вы не можете использовать классы утилиты/поддержки в качестве “помощников” для Вашей модели предметной области?

ведущее устройство dbo.xp_cmdshell

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

5
задан shoes 24 August 2009 в 02:15
поделиться

2 ответа

Ключевой концепцией предметно-ориентированного дизайна является создание богатого дизайна, который передает и отражает жаргон своих экспертов в предметной области (бизнес-пользователей). Затем вы хотите, чтобы ваш код стал выражением этой модели предметной области. (см. разделы «Вездесущий язык» и «Дизайн, управляемый моделями» в сводках по шаблонам DDD ).

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

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

product = GetProduct(data.productId);
shoppingCart.add(product);
receipt = customer.Purchase(shoppingCart);

Ваш метод Customer.Purchase может выполнять следующие действия:

creditCard = this.getCreditCart(creditCardNumber);
purchaseNumber = creditCard.Charge(shoppingCart.Total);

Я понимаю, что эти примеры неполны или даже не совсем точны, но я надеюсь, что идея вам пригодится.

В ответ на ваш исходный вопрос - Да, иметь полезные классы поддержки - это нормально. Однако вы хотите создать эти классы поддержки и сопоставить их с реальными сущностями предметной области. После некоторой работы с вашими пользователями вы, вероятно, сможете создать значимые объекты домена, которые представляют собой нечто большее, чем объекты сценария транзакции.

Надеюсь, это поможет. Удачи!

вы, вероятно, сможете создать значимые объекты домена, которые представляют собой нечто большее, чем объекты сценария транзакции.

Надеюсь, это поможет. Удачи!

вы, вероятно, сможете создать значимые объекты домена, которые представляют собой нечто большее, чем объекты сценария транзакции.

Надеюсь, это поможет. Удачи!

4
ответ дан 14 December 2019 в 19:20
поделиться

Как сказал Крис, нормально иметь служебные классы поддержки, если эти классы поддержки сопоставлены с реальными сущностями предметной области, обнаруженными на языке пользователя. Иногда множество «вспомогательных классов» является симптомом анемичной модели, если они связаны с классами, которые в основном имеют сеттеры и геттеры (в этих сценариях помощники вырастают из поведения, которое неправильно назначено объектам предметной области).

1
ответ дан 14 December 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: