Es gibt ein objektorientiertes Konstruktionsprinzip, das in etwa besagt: "Eine Klasse sollte nur die Verträge der Klassen kennen, die sie als Argumente annimmt, oder alle internen, die sie verwendet."
Das Gegenbeispiel, in C++, ist:
Foo::bar( Baz* baz)
{
baz()->blargh()->pants()->soil(); // this is bad, Foo knows about blarghs and pants
}
Hat dieses Prinzip einen Namen? Außerdem wäre es schön, das eigentliche Prinzip und nicht meine obige Umschreibung zu sehen.