Dans une discussion antérieure, Matthieu M. a présenté une technique de protection d'accès basée sur un usage idiomatique orienté clé. Bien qu'il ait été rencontré précédemment, le modèle n'avait pas été explicitement reconnu comme tel.
Le concept consiste à définir une classe (SomeKey) comme une clé, qui accorde l'accès à une méthode protégée (protectedMethod) dans une classe distincte (Bar). uniquement aux classes qui sont amies avec la classe clé (Foo dans cet exemple). Plus précisément, même si Foo peut invoquer protectedMethod à l'aide d'une instance de clé, les classes dépourvues d'une telle amitié, comme Baz, ne peuvent y accéder.
Cette approche permet un contrôle d'accès précis, dépassant le besoin de désigner Foo comme instance de clé. ami de Bar ou en utilisant des modèles de proxy plus complexes.
Identification des modèles
La technique référencée est maintenant largement connue sous le nom de modèle « clé d'accès ». Ce nom est apparu comme le plus répandu lors des enquêtes ultérieures.
Simplification C 11
En C 11, le motif devient encore plus élégant. Au lieu d'appeler b.protectedMethod(SomeKey());, vous pouvez simplement écrire b.protectedMethod({});, améliorant encore sa facilité de mise en œuvre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!