"Нарушения OCP не вижу. Добавил табличку - добавил новый репозиторий и новый property". OCP - открыто для расширения, закрыто для модификации. Вы пишите, что нарушений нет, но в следующем предложении изменяете класс:) Попробуйте в ваше реализации заменить репозитории на другие имплементации и вам придётся в каждом property менять возращяемый класс. Эту проблему как раз решает DI-контейнер(как уже писали выше).
"Нарушения OCP не вижу. Добавил табличку - добавил новый репозиторий и новый property". OCP - открыто для расширения, закрыто для модификации. Вы пишите, что нарушений нет, но в следующем предложении изменяете класс:) Попробуйте в ваше реализации заменить репозитории на другие имплементации и вам придётся в каждом property менять возращяемый класс. Эту проблему как раз решает DI-контейнер(как уже писали выше).
ПС хорошая статья, спасибо за труды