Pourquoi utiliser les classes finales
Minimisez le champ de vision
Lorsque vous voyez une classe avec un préfixe final, vous vous rendez compte que cette classe ne peut être étendue par aucune autre, ce qui non seulement la rend plus lisible, mais vous permet également de vous assurer que la portée de la logique est limitée à cette classe particulière.
Encourager une approche de composition sur héritage
Le principe ouvert / fermé dit: une classe doit être ouverte pour extension, mais fermée pour changement.
Si pour une raison quelconque (bien comprendre la raison elle-même) vous décidez d'utiliser l'héritage, supprimez simplement le mot-clé final et vous avez terminé.
Si vous ne pouvez pas étendre la classe «par défaut» (car c'est définitif), vous vous aidez en pensant d'abord à utiliser la composition au lieu de l'héritage.
Pourquoi ce cours n'est-il pas final?
Si nous visons la composition plutôt que l'héritage, nous devrions essayer d'éviter autant que possible l'héritage et ne l'utiliser que lorsque cela est vraiment nécessaire. L'héritage POO est souvent mal utilisé.
Délires
Lorsque nous avons étudié la POO pour la première fois, nous avons donné un exemple classique d'héritage. Cependant, lorsque Alan Kay a créé Smalltalk, l'héritage n'était pas son concept principal. Le concept principal était la messagerie, c'est-à-dire que vous pouvez envoyer des messages aux objets et qu'ils encapsulent les données et la logique. Vous pouvez modifier leur comportement à l'aide de divers objets, qui sont en fait de la composition. Mais en fin de compte, le concept d'héritage est si populaire qu'il éclipse finalement la composition.
Avantages de l'utilisation des cours finaux
- . .
- . , .
- . , .
- . , . .
- . .
- . , , .
- . .
- , , .
- , , . , . , , .
[ ]
- .
- .
- Utilisez la composition (via DI via le constructeur de classe) pour garder les choses ensemble et minimiser la complexité.
Sous-total: Interfaces -> Classes finales -> Composition