Если важный процесс A имеет ссылку на не столь важный процесс B, вы теперь сделали процесс A зависимым от процесса B, хотя процессу A действительно не нужен процесс B для чего-либо.
«Клиенты не должны зависеть от интерфейсов, которые они не используют» следует читать - Клиенты, классы, модули, системы, о которых люди не должны знать, иметь ссылки на них, иметь зависимости от других вещей, которыене нужно для удовлетворения их функциональных требований.
Итак, допустим, у вас есть важная вещь высокого уровня, например, переключатель / кнопка для запуска некоторых ядерных бомб.Если вы подключите кофеварку к нему, то у вас будет шанс все взорвать, потому что вы сделали свою важную ракетную установку зависимой от того, правильно ли работает ваша кофеварка.
Вот пример из реальной жизни:
Веб-клиент обменивается данными с веб-сервером.Веб-сервер обменивается данными с базой данных.
Если веб-клиент сможет напрямую обращаться к базе данных, то что произойдет, если клиент перестанет работать и потеряет 1000 запросов в секунду?
СетьСервер в этом случае действует как Интерфейс, опосредуя связь между клиентом и базой данных.И клиент, и база данных зависят от веб-сервера, но не знают друг друга.Поскольку клиент не знает о базе данных (не подключен к ней), клиент не может ее обойти.Почему база данных должна зависеть от клиента?Сам по себе он прекрасно работает.
На постере эта кнопка выглядит довольно важной.Таким образом, как программист-творец, вы должны сказать «НЕТ», когда кто-то просит вас подключить кофеварку или что-то, что не требуется в ракетной пусковой установке.