Maison >développement back-end >C++ >Comment le modèle « Clé d'accès » de C 11 peut-il améliorer le contrôle d'accès ?

Comment le modèle « Clé d'accès » de C 11 peut-il améliorer le contrôle d'accès ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 18:53:30869parcourir

How Can C  11's

Protection d'accès via un idiome orienté clé

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn