以前の議論で、Matthieu M. はキー指向のイディオムによるアクセス保護の手法を紹介しました。以前に遭遇したものの、このパターンはそのようなものとして明示的に認識されていませんでした。
この概念には、クラス (SomeKey) をキーとして定義することが含まれており、これにより、別のクラス (Bar) 内の保護されたメソッド (protectedMethod) へのアクセスが許可されます。キー クラス (この例では Foo) と友達であるクラスのみに適用されます。具体的には、Foo はキー インスタンスを使用して protectedMethod を呼び出すことができますが、Baz などのそのようなフレンドシップを持たないクラスはアクセスが制限されます。
このアプローチにより、Foo をキー インスタンスとして指定する必要性を超え、きめ細かいアクセス制御が可能になります。
パターン識別
参照された手法は現在、「パスキー」パターンとして広く知られています。この名前は、その後の調査で最も一般的であることが判明しました。
C 11 の簡略化
C 11 では、パターンはさらにエレガントになります。 b.protectedMethod(SomeKey()); を呼び出す代わりに、単に b.protectedMethod({}); を記述するだけで、実装がさらに容易になります。
以上がC 11 の「パスキー」パターンはアクセス制御をどのように強化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。