!!! Может быть перефразирован как «Используйте только одну точку»
Каждый программный модуль должен:
-
обладать ограниченным знанием о других модулях: знать о модулях, которые имеют «непосредственное» отношение к этому модулю.
-
взаимодействовать только с известными ему модулями «друзьями», не взаимодействовать с незнакомцами.
-
обращаться только к непосредственным «друзьям».
Аналогия из жизни: Если вы хотите, чтобы собака побежала, глупо командовать её лапами, лучше отдать команду собаке, а она уже разберётся со своими лапами сама.
Основной идеей является то, что объект должен иметь как можно меньше представления о структуре и свойствах чего угодно (включая собственные подкомпоненты).
В объекте можно вызывать методы принадлежащие только:
-
самому объекту;
-
объектам, переданным в параметрах метода;
-
любому объекту созданному внутри метода;
-
любим компонентам объекта (Композиция).