доменная служба или метод внутри домена - PullRequest
2 голосов
/ 16 августа 2011

У меня есть два общих корня, BonusProgram и Advertiser. Теперь правило рекламодателя может иметь только одну бонусную программу одновременно. Теперь, чтобы назначить bonusProgram рекламодателю, что мне делать, есть ли у меня такой метод в Advertiser.

    public virtual void AssignBonusProgram(BonusProgram bonusProgram)
    {
        this.bonusProgram = bonusProgram;
    }

или я могу создать службу домена и использовать такой метод в

   public void SubscribeToBonusProgram(BonusProgram bonusProgram, Advertiser advertiser)
   {

   }

1 Ответ

4 голосов
/ 16 августа 2011

Сервис будет излишним в этом случае. Ваше бизнес-правило уже зафиксировано тем фактом, что bonusProgram является , а не коллекцией .

... правило, что рекламодатель может иметь только один бонус программу на время.

И ваша реализация говорит мне, что рекламодатель может не иметь связанной бонусной программы. Если это не так, вы можете просто проверить на null и выдать ArgumentNullException. Доменные сервисы очень часто используются неправильно, и может быть хорошей идеей сначала попытаться поместить логику в один из объектов или типов значений. И используйте доменную службу , только если логика концептуально не принадлежит ни одной сущности.

...