Вот общий мнимый пример, составленный для этого сообщения. Рассмотрим 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-кратным областью, а также для геттеров. Это делает объекты с наружной областью, требующие многих зависимостей, и геттеры, чтобы передать их.
Есть ли альтернатива этой методологии прохождения объектов, что я пропустил по пути? Поделись, пожалуйста! Любые ссылки/комментарии оценены.