DDD: Какие у вас есть веские причины для слабой пары сущностей? - PullRequest
2 голосов
/ 09 апреля 2009

Еще в декабре было это сообщение , на которое был дан ответ "можно использовать конкретные типы [для простого объекта]".

Но я продолжаю видеть все больше и больше простых сущностей с интерфейсами в примерах проектов, и даже очень большое приложение Enterprise, которое я только что взял под контроль (считая 89 интерфейсов и продолжая).

Неужели люди выбирают не лучший подход, а просто стреляют в проект с помощью «мой проект слабо связан!» подходит?

Или я что-то упустил. Я могу выполнить модульное тестирование с конкретными типами для своих имплантаций IService, IFactory и IRepository, которые у меня есть (и работает довольно хорошо). Я также создаю свой первый «Антикоррупционный слой» для абстрагирования многих сторонних инструментов от основного домена. Этот антикоррупционный слой имеет несколько Фасадов, Переводчиков и Адаптеров - все они слабо связаны (или планируются).

Итак, что-то мне не хватает в сущностях, имеющих интерфейсы?

public interface IContent
{
  Int32 ContentID {get; set;}
}

IList<IContent> list = new List();

Редактировать: Я должен также упомянуть, что у моего корпоративного приложения, которое имеет все эти интерфейсы, нет нулевых модульных тестов. лол

1 Ответ

3 голосов
/ 09 апреля 2009

Более важно, чтобы объекты, которые несут ответственность , соответствовали интерфейсу, чем для простых объектов данных. Если вы можете определить сущность в терминах методов, тогда да, вы получите пользу от интерфейса. Я не вижу, чтобы объект, который будет просто использоваться в качестве DTO в приложении, получает какое-то большое преимущество, имея интерфейс.

Тем не менее, на мой взгляд, безусловно, есть смысл абстрагироваться от "сущностей", созданных сторонним инструментом или фреймворком, таким как L2S.

...