Принцип "Односторонняя связность"

Принцип "Односторонняя связность":

Всегда проще развивать программу, когда один Класс знает про другой, а тот другой ничего не знает про первый. Получается иерархия, можно их удобно тестировать. А если оба класса знают друг про друга – то получается то, что называется "сильная связанность" – фактически они представляют собой одну какую-то сущность, разделенную на два класса – поэтому ее сложно отслеживать, развивать и тестировать.

А если вдруг, в программе несколько классов, где каждый знает друг про друга – то получается "спагетти", вообще не поддерживаемая программа.

Например, класс Main с psvm знает про основной класс программы, который и запускает. Но этот основной класс ничего не знает о классе Main. Получается иерархия.

Например, у нас Лошадь и Ипподром. Ипподром, знает про Лошадей. И лучше, если Лошадь ничего не знает про Ипподром.

Например, у нас есть Объект и Хранилище Объектов (Тарелка и Стопка тарелок). Лучше, если Стопка тарелок знает про отдельные Тарелки, но Тарелки ничего не знают про Стопку Тарелок.

Например, любые библиотечные классы Java. Наши программы про них знают и их используют, но они ничего не знают про нашу программу.

Это общий принцип, и у него, конечно же, могут быть исключения.

ОК! ИДЕМ ДАЛЬШЕ!