Существует некоторый объектно-ориентированный инженерный принцип, который гласит что-то вроде «класс должен знать только о контрактах классов, которые он принимает в качестве аргументов, или о любых внутренних, которые он использует».
Контрпример в C ++:
Foo::bar( Baz* baz)
{
baz()->blargh()->pants()->soil(); // this is bad, Foo knows about blarghs and pants
}
У этого принципа есть имя? Кроме того, фактический принцип, а не мой парафраз выше, было бы приятно видеть.