[JAVA] Was ist besser, Verallgemeinerung oder Delegation, wenn es Überschneidungen gibt?

Wenn während der objektorientierten Implementierung doppelte Funktionen angezeigt werden Sie fragen sich vielleicht, wie Sie es zusammenstellen sollen. Als Methode "Generalisierung", die eine Klasse mit dem gemeinsamen Teil als übergeordnetem Teil erstellt Es gibt eine "Delegation", die den gemeinsamen Teil in eine externe Klasse zerlegt und darauf verweist.

Verallgemeinerung

図4.png

Transfer

図5.png

Im Allgemeinen ist ** Delegation ** besser. Der Grund ist, dass in der Beziehung von ** Vererbung ** es nur von Eltern und Kind wiederverwendet werden kann, aber wenn es ** Delegation ** ist, kann es von anderen Klassen wiederverwendet werden. In Bezug auf Vererbung und Verallgemeinerung wird gesagt, dass eine Änderung der Oberklasse Kinder betrifft und den Einflussbereich vergrößert. Außerdem ist der Grad der Kopplung zwischen Oberklassen und Unterklassen stärker als bei der Delegation, und die Delegation behält auch die Unabhängigkeit bei.

Recommended Posts

Was ist besser, Verallgemeinerung oder Delegation, wenn es Überschneidungen gibt?
Was ist besser, Kotlin oder zukünftiges Java?
Die Frage, welche besser ist, ob oder wechseln
[6 Auswahlmöglichkeiten für den Vergleich von Formularwerkzeugen] Was ist besser, Open Source oder kommerziell?