在之前的討論中,Matthieu M. 介紹了一種基於面向密鑰的慣用法的訪問保護技術。雖然以前遇到過,但該模式尚未被明確識別。
這個概念涉及將類別(SomeKey) 定義為鍵,它授予對單獨類別(Bar) 中受保護方法(protectedMethod) 的存取權限僅適用於那些與鍵類別(本例中為Foo)是友元的類別。具體來說,雖然 Foo 可以使用金鑰實例呼叫 protectedMethod,但缺乏這種友誼的類別(例如 Baz)將被限制存取它。
這種方法可以實現細粒度的存取控制,無需將 Foo 指定為Bar 的朋友或使用更複雜的代理模式。
模式辨識
所引用的技術現在被廣泛稱為「密碼」模式。在隨後的查詢中,這個名稱成為最普遍的名稱。
C 11 簡化
在 C 11 中,模式變得更加優雅。您可以簡單地編寫b.protectedMethod({});,而不是呼叫b.protectedMethod(SomeKey());,進一步增強其實現的簡單性。
以上是C 11 的「密碼」模式如何增強存取控制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!