Использование интерфейсов между слоями

Должна ли связь между слоями всегда осуществляться с использованием интерфейса или можно обращаться к объектам напрямую?

Например, между бизнес-логикой и слоями / проектами бизнес-объектов.

2 ответа

Решение

Прямой доступ к объектам создает очень тесную связь между объектами - "что вы имеете в виду, вы реорганизовали Customer.FirstName в Customer.Name.GivenName? Теперь я должен переписать свой код, о нет!"

Программирование на основе интерфейса дает вам больше возможностей для изменения реализации в будущем, возможно, для замены совершенно новой (даже динамической, во время выполнения). Это может показаться неприятным, но для чего-то большего, чем Hello World, тесная связь вернется, чтобы кусать вас в задницу (или того, кто поддерживает код после парня, который поддерживал его после вас).

Есть много преимуществ использования интерфейса. Вы бы лучше прочитали хорошую книгу о принципах объектно-ориентированной технологии. Или просто поискать зачем использовать интерфейсы. Но короткий ответ - использовать интерфейсы.

Другие вопросы по тегам