Fournir un accès limité aux méthodes privées en Java
En Java, il n'est pas directement possible de reproduire le concept "ami" C, qui permet accès aux membres privés d’une classe à des entités externes. Cependant, un comportement similaire peut être obtenu en utilisant des techniques alternatives.
L'approche de la signature d'amour
Une approche intelligente pour obtenir un accès contrôlé consiste à utiliser une signature « secrète ». Voici comment cela fonctionne :
Exemple :
Considérez deux classes, Roméo et Juliette, provenant de packages différents. Roméo doit accéder aux méthodes privées de Juliet sans en faire une sous-classe.
Code de Juliette :
// Capulet package public class Juliet { public static void cuddle(Romeo.Love love) { Objects.requireNonNull(love); // Juliet's private methods can be accessed here. } }
Romeo.Love est une classe publique avec un constructeur privé, garantissant que seul Romeo peut créer une instance.
Code de Romeo :
// Montague package public class Romeo { public static final class Love { private Love() {} } private static final Love love = new Love(); public static void cuddleJuliet() { Juliet.cuddle(love); } }
Cette approche exploite l'exclusivité du constructeur de classe de signature pour accorder un accès sélectif aux méthodes souhaitées tout en préservant l'encapsulation et la confidentialité.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3