[JAVA] Qu'est-ce qui est mieux, généralisation ou délégation, quand il y a des chevauchements?

Lorsque des fonctions dupliquées apparaissent lors de l'implémentation orientée objet Vous vous demandez peut-être comment l'assembler. En tant que méthode, "généralisation" qui crée une classe avec la partie commune comme parent Il existe une "délégation" qui découpe la partie commune en une classe externe et y fait référence.

Généralisation

図4.png

transfert

図5.png

En général, la ** délégation ** est meilleure. La raison en est que dans la relation de ** l'héritage **, il ne peut être réutilisé que par le parent et l'enfant, mais s'il s'agit d'une ** délégation **, il peut être réutilisé à partir d'autres classes. En termes d'héritage et de généralisation, on dit que changer la superclasse affectera les enfants et augmentera la portée de l'influence. En outre, le degré de couplage entre les superclasses et les sous-classes est plus fort que la délégation, et la délégation maintient également l'indépendance.

Recommended Posts

Qu'est-ce qui est mieux, généralisation ou délégation, quand il y a des chevauchements?
Quel est le meilleur, Kotlin ou futur Java?
La question de savoir quel est le meilleur, si ou changer
[6 sélections de comparaison d'outils de formulaire] Quel est le meilleur, open source ou commercial?