在之前的讨论中,Matthieu M. 介绍了一种基于面向密钥的惯用法的访问保护技术。虽然以前遇到过,但该模式尚未被明确识别。
这个概念涉及将类 (SomeKey) 定义为键,它授予对单独类 (Bar) 中受保护方法 (protectedMethod) 的访问权限仅适用于那些与键类(本例中为 Foo)是友元的类。具体来说,虽然 Foo 可以使用密钥实例调用 protectedMethod,但缺乏这种友谊的类(例如 Baz)将被限制访问它。
这种方法可以实现细粒度的访问控制,无需将 Foo 指定为Bar 的朋友或使用更复杂的代理模式。
模式识别
所引用的技术现在被广泛称为“密码”模式。在随后的查询中,这个名称成为最普遍的名称。
C 11 简化
在 C 11 中,模式变得更加优雅。您可以简单地编写b.protectedMethod({});,而不是调用b.protectedMethod(SomeKey());,进一步增强其实现的简便性。
以上是C 11 的'密码”模式如何增强访问控制?的详细内容。更多信息请关注PHP中文网其他相关文章!