Я думаю, вы воспринимаете это немного слишком буквально.
Я имел удовольствие присутствовать на выступлении Венката Субраманиама, в котором говорилось о DIP.
Вы правы, когда говорите, что должны полагаться на абстракции, а не на конкременты, но в моих записях из этого выступления у меня есть сноска «возьми это с крошкой соли».
В вашемВ этом случае вам захочется принять это с недолгой солью, поскольку здесь достаточно сильный запах кода - вы открываете использование этого компонента всем потребителям, которые в нем нуждаются, что неявно создает зависимость от него.Это нарушает принцип одиночной ответственности , поскольку этот компонент используется в большем количестве мест, чем , вероятно, .
Поскольку кажется, что вы говорите о базе данныхабстракция, возможно, вы захотите заглянуть в DTO , который будет открыт между сервисами для передачи информации между ними, и позволит вашему бину обрабатывать внутренности.
К вашей точке ...
если он изменит [s], тогда мне придется изменить все клиенты, которые его используют
... это верно, если вы удалите функциональность.Если вы добавите новую функциональность, вы можете позволить своим нижестоящим клиентам просто игнорировать эту функциональность.Если вы хотите изменить существующую функциональность , вы должны разрешить клиентам путь к миграции.