тупо интефрейсы, которые объявлены в том же пакете?
И такой еще вопрос: А тип где должен лежать. Если метод интерфейса репозитория возвращает какую-то структуру. типа Get() Data
вот это лежит в условном пакете model
Ну вот тоже такое себе.
Получается какой-то god пакет, который расползается по всему проекту. Хотя я понимаю, что это довольно практично
да, по идее можно удалить все внешние пакеты, кроме model, и все будет собираться, а тесты - проходить. связывание происходит только непосредственно при запуске приложения
он по факту не сильно расползается, потому что язык приложения обычно довольно ограничен.
в идеальном мире пакет сам должен хранить свои типы внутри себя. А на моменте инъекции ты адаптируешь repository под нужный интерфейс. Тогда при разработке пакета тебе вообще можно не задумываться как выглядит репозиторий. Но это столько гемора, что чаще да глобальный models выглядит практично
понятно, придется тогда часть переписывать для тестов
ну я подхожу к этому так, что все общение между пакетами - на языке models. конечно у пакета могут быть свои типы - например транспортный dto или специфические объекты для записи в бд. но я слежу за тем, чтобы хаос, порожденный реальным миром оставался внутри пакета и не уходил в междупакетье
Междупакетье, это надо записать 😄 Да я понимаю о чем ты
Обсуждают сегодня