Diese Vorschrift ist ein völliger Unsinn. Warum?
Der Grund dafür ist, dass man in jedem Fall sagen kann, ob man Komposition oder Vererbung verwenden soll. Dies wird durch die Antwort auf eine Frage bestimmt: "IST etwas A etwas anderes" oder "HAT etwas A etwas anderes".
Man kann nicht "vorziehen", etwas zu etwas anderem zu machen oder etwas anderes zu haben. Es gelten strenge logische Regeln.
Es gibt auch keine "erfundenen Beispiele", da in jeder Situation eine Antwort auf diese Frage gegeben werden kann.
Wenn Sie diese Frage nicht beantworten können, ist etwas anderes falsch. Dazu gehören sich überschneidende Zuständigkeiten von Klassen, die in der Regel das Ergebnis sind von falsche Verwendung von Schnittstellen weniger häufig durch Umschreiben desselben Codes in verschiedenen Klassen.
Um solche Situationen zu vermeiden, empfehle ich auch, gute Namen für Klassen zu verwenden, die ihren Aufgaben voll entsprechen.
6 Stimmen
Siehe auch welches Klassendesign besser ist
6 Stimmen
In einem Satz Vererbung ist öffentlich, wenn Sie eine öffentliche Methode haben und Sie ändern es ändert die veröffentlichte api. wenn Sie Zusammensetzung haben und das Objekt komponiert hat sich geändert, müssen Sie nicht Ihre veröffentlichte api ändern.