Как структурировать интерфейсы в иерархии каталогов приложений? - PullRequest
2 голосов
/ 08 марта 2010

Поместите их все в одну отдельную структуру папок или вместе с классами, которые их реализуют?

1 Ответ

6 голосов
/ 08 марта 2010

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

У вас есть два варианта:

  • Соедините интерфейсы с классами , потребляющими их. Это все еще создает тесную связь, но эта связь менее проблематична, так как потребители часто живут в библиотеке, которая предоставляет связанные типы. В этом случае, если у вас есть разработчики в этой библиотеке, они могут реализовать интерфейсы, не вводя никакой дополнительной связи.
  • Для максимальной слабой связи 1013 * поместите интерфейсы в отдельную библиотеку. Это дает вам большую гибкость, но может также потребовать дополнительной работы.
...