Что наиболее применимо к EF, это не шаблон репозитория. Это шаблон Facade (абстрагирование вызовов EF-методов на более простые и простые в использовании версии).
EF - это тот, который применяет шаблон репозитория (и шаблон Единицы работы). То есть, EF является тем, который абстрагирует уровень доступа к данным, так что пользователь понятия не имеет, что он имеет дело с SQLServer.
И при этом большинство «репозиториев» над EF не являются даже хорошими фасадами, поскольку они просто довольно однозначно, к одиночным методам в EF, даже до того, что они имеют одинаковые сигнатуры.
. Две причины для применения этого так называемого шаблона «Репозиторий» над EF - это упростить тестирования и установить подмножество «консервированных» звонков на него. Неплохо сами по себе, но явно не репозиторий.
Вы можете указать подкомпонентные классы, которые должны зависеть от компонента, дочерним для которого является ваш модуль.
У меня есть компонент A
с модулем ModuleA
и компонент B
. Если вы укажете subcomponents = B.class
внутри ModuleA
, то кинжал не будет компилировать, давая
error: A doesn't have a @Subcomponent.Builder, which is required when used with @Module.subcomponents
@Module(subcomponents = {B.class})
^
, если компонент B
не является подкомпонентом A
.