Использование интерфейсов между слоями
Должна ли связь между слоями всегда осуществляться с использованием интерфейса или можно обращаться к объектам напрямую?
Например, между бизнес-логикой и слоями / проектами бизнес-объектов.
2 ответа
Прямой доступ к объектам создает очень тесную связь между объектами - "что вы имеете в виду, вы реорганизовали Customer.FirstName в Customer.Name.GivenName? Теперь я должен переписать свой код, о нет!"
Программирование на основе интерфейса дает вам больше возможностей для изменения реализации в будущем, возможно, для замены совершенно новой (даже динамической, во время выполнения). Это может показаться неприятным, но для чего-то большего, чем Hello World, тесная связь вернется, чтобы кусать вас в задницу (или того, кто поддерживает код после парня, который поддерживал его после вас).
Есть много преимуществ использования интерфейса. Вы бы лучше прочитали хорошую книгу о принципах объектно-ориентированной технологии. Или просто поискать зачем использовать интерфейсы. Но короткий ответ - использовать интерфейсы.