Вот общий мнимый пример, составленный для этого сообщения. Рассмотрим 6 классов
TableFactory, TableData, TableCRUD, TableSchema, DBConnect, Logger.
TableFactory - это внешний класс, предположим, что он содержит объект TableData для таблицы БД.
В этом TableFactory нет вызовов TableSchema или DBConnect или logger. Я нацелен на пример внутренних объектов, которые не нужны во внешней области.
TableData - это внутренние выборки и работает с данными, поэтому ему нужны TableCrud, DBConnect и logger.
TableCrud содержит TableSchema и нуждается в DBConnect и logger.
DBConnect itseld, чтобы сделать что-то интересное, нужен Logger. Мой пример теперь имеет 3 области.
Мой вопрос довольно прост, если у вас есть объект 3 (или более) областей, которые не вызываются объектами на внешней области, как отправлять объекты из внешнего в внутреннее пространство без нарушения интерфейса Принцип сегрегации → TableFactory не должен иметь дело с DBConnect или Logger, необходимыми для внутренних объектов.
Если кто-то уважает основные принципы ООП и стремится к простоте проверки → у вас будут внешние объекты, нуждающиеся в инъекции 5 объектов, а затем есть методы геттера, которые пропускают объекты, необходимые дальше по цепочке. И внутренние объекты с областью, в свою очередь, требуют инъекции зависимостей их внутренних объектов с 3-кратным областью, а также для геттеров. Это делает объекты с наружной областью, требующие многих зависимостей, и геттеры, чтобы передать их.
Есть ли альтернатива этой методологии прохождения объектов, что я пропустил по пути? Поделись, пожалуйста! Любые ссылки/комментарии оценены.