Теория низкой связи против реальности

Связывание определяется как знание одного объекта о другом, которое описывает, насколько они зависимы. Чем больше зависимость, тем хуже, так как изменения в одном повлияют на второй. Существуют различные типы муфт:

http://www.principles-wiki.net/principles:low_coupling

Предположим, мы говорим о соединении вызовов.

В Java, когда A создает объект B и вызывает один из его методов, говорят, что он тесно связан. Но если мы создадим интерфейс IB, используемый из A, где B реализует IB, говорят, что он слабо связан. Я не понимаю, почему, поскольку одно изменение в интерфейсе повлияет на A и B. И одно изменение в B повлияет на IB и A. Они все еще кажутся зависимыми от вызова.

То же самое относится и к шаблону проектирования Facade GoF. Говорят, что это способствует низкой связанности, поскольку мы помещаем посредника между подсистемой и клиентским кодом. В данном случае похоже, что мы перенесли проблему из клиентского кода в Фасад. Так как изменение подсистемы повлияет на Фасад, а не на клиентский код. Клиентский код больше не связан с подсистемой, в отличие от Фасада.

Я не вижу, как связь уменьшается.


person Asier Naiz    schedule 16.02.2020    source источник