Heim >Backend-Entwicklung >C++ >Wie kann das „Passkey'-Muster von C 11 die Zugriffskontrolle verbessern?

Wie kann das „Passkey'-Muster von C 11 die Zugriffskontrolle verbessern?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-02 18:53:30856Durchsuche

How Can C  11's

Zugriffsschutz durch schlüsselorientierte Redewendung

In einer vorherigen Diskussion stellte Matthieu M. eine Technik für den Zugriffsschutz vor, die auf schlüsselorientierter Redewendung basiert. Obwohl das Muster bereits zuvor angetroffen wurde, wurde es nicht explizit als solches erkannt.

Das Konzept beinhaltet die Definition einer Klasse (SomeKey) als Schlüssel, der Zugriff auf eine geschützte Methode (protectedMethod) in einer separaten Klasse (Bar) gewährt. nur an die Klassen, die mit der Schlüsselklasse befreundet sind (in diesem Beispiel Foo). Während Foo protectedMethod mithilfe einer Schlüsselinstanz aufrufen kann, ist der Zugriff auf Klassen, denen eine solche Freundschaft fehlt, wie z. B. Baz, eingeschränkt.

Dieser Ansatz ermöglicht eine fein abgestimmte Zugriffskontrolle, die über die Notwendigkeit hinausgeht, Foo als zu kennzeichnen Freund von Bar oder die Verwendung komplizierterer Proxy-Muster.

Musteridentifizierung

Die referenzierte Technik ist heute allgemein als „Passkey“-Muster bekannt. Dieser Name stellte sich bei späteren Anfragen als am häufigsten heraus.

C 11 Vereinfachung

In C 11 wird das Muster noch eleganter. Anstatt b.protectedMethod(SomeKey()); aufzurufen, können Sie einfach b.protectedMethod({}); schreiben, was die Implementierung noch einfacher macht.

Das obige ist der detaillierte Inhalt vonWie kann das „Passkey'-Muster von C 11 die Zugriffskontrolle verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn