Skip to main content

Qu'est-ce qu'une classe intérieure anonyme?

Dans la programmation informatique orientée objet, une classe intérieure anonyme est une classe déclarée à l'intérieur d'une méthode mais qui n'est pas nommée.Une classe intérieure anonyme a plusieurs restrictions qui la rendent différente d'une classe normale, y compris une restriction sur la portée des variables auxquelles il peut accéder.Il existe des situations très spécifiques dans lesquelles l'utilisation d'une classe intérieure anonyme peut rendre le code source plus lisible, mais il est principalement utilisé pour aider à appliquer l'encapsulation où la génération de classes distinctes pourrait la compliquer.

L'encapsulation est le concept dans la programmation orientée objet(OOP) qu'un objet et ses composants doivent être en quelque sorte protégés et liés à l'objet.Les classes intérieures anonymes et les classes intérieures en général aident à réaliser l'encapsulation pour des objets particulièrement complexes.Au lieu d'avoir à créer une classe qui s'appuie sur une classe externe distincte, les liant ensemble artificiellement et potentiellement exposer certains composants, une classe intérieure anonyme peut lier les deux solidement.

Dans certains langages de programmation, une classe intérieure anonyme peutAide à surmonter les restrictions de l'héritage unique.Si un objet hérite d'une classe mais doit ensuite accéder à un autre, une classe intérieure peut être générée à la volée, puis transmise aux gestionnaires appropriés.Cette technique est courante avec les rappels et les auditeurs d'événements.La seule alternative serait de créer une deuxième classe entière dans laquelle seule une ou deux méthodes sont remplacées.

Les classes intérieures anonymes ont des restrictions en place pour éviter la rupture de l'encapsulation et appliquer la portée.La principale restriction est qu'une classe intérieure anonyme ne peut pas accéder aux variables de la méthode dans laquelle il réside à moins que ces variables ne soient déclarées finales.En effet, la classe intérieure pourrait continuer à fonctionner au-delà de la vie de la classe et de la méthode dans laquelle il niche.Les variables de la classe d'emballage seraient détruites une fois sa vie terminée, de sorte que les références que la classe intérieure tenue deviendrait instantanément invalides.La seule exception à cela est une variable finale, car elle existera au-delà de l'instance.

L'une des utilisations les plus spécifiques d'une classe intérieure anonyme est la protection du code.De nombreuses langues OOP prévoient un mécanisme appelé réflexion.La réflexion permet à un programme de disséquer une autre classe et de voir quelles sont ses variables et méthodes membre, mais pas le code lui-même.En utilisant une classe intérieure anonyme, le contenu de la classe intérieure est protégé de la réflexion et le fonctionnement interne de la classe plus grande peut être effectivement caché.