代码之家  ›  专栏  ›  技术社区  ›  Georg Fritzsche

如何命名这种面向密钥的访问保护模式?

  •  18
  • Georg Fritzsche  · 技术社区  · 14 年前

    this key-oriented access-protection pattern :

    class SomeKey { 
        friend class Foo;
        SomeKey() {} 
        // possibly non-copyable too
    };
    
    class Bar {
    public:
        void protectedMethod(SomeKey); // only friends of SomeKey have access
    };
    

    ... 还没有一个已知的名字,所以我想为它找一个好的名字,这样我们就可以参考它而不打破我们的舌头。建议?

    应该是:

    • 简洁
    • 传达访问保护的意图
    • 理想情况下意味着不需要代理(?)
    4 回复  |  直到 7 年前
        1
  •  4
  •   GManNickG    14 年前

    我更喜欢:

    • 密钥好友习语
    • 传门友成语
    • 偏友成语

        2
  •  4
  •   Nordic Mainframe    14 年前

    SomeKey看起来有点像进入酒吧的后台通行证::protectedMethod。所以这方面的任何东西都应该是好的:护照习惯用语、口号习惯用语、密钥习惯用语、VIP习惯用语……难道不是一流的访问方式吗?

        3
  •  4
  •   Jeff    14 年前

    我提议把这个命名为 ,表示应要求出示的证明拥有权力的令牌。我相信这是一个更好的比喻比那些围绕着这个词 在这里的许多其他答案。

    “Key”在编程术语中已经相当繁重,至少将查找和受限访问的概念混为一谈。此外,真正的密钥通常操作单个锁,而不是来自制造商的所有锁的集合,并且此模式中的接受类不是锁的集合,而是请求执行操作的自我保护实体的集合。

    “徽章”传达了这样一个原则,即令牌将权限授予整个类别的其他实体,而不仅仅是单个对象。这个词可能过于依赖(以美国为中心?)警察或安全图像,我确实考虑过这样的词 传票 保证 ,但他们似乎过于关注第三方的访问授权。不管怎样,具有给定徽章类型的个人可以强制遵守这些徽章的个人类别的编码行为。我看到的整体互动是这样的:

    • 这个聚会太吵了。把音响关小点(赠送徽章)
    • 哦,好的,警官((呻吟)
        4
  •  2
  •   Puppy    14 年前

    class cake;
    class SomeClass {
        friend class cake;
        void foo();
    };
    class cake {
        void DoFoo(SomeClass& class) { class.foo(); }
    };
    class lols : cake {
        // Now we can DoFoo().
    };
    

    我把它命名为锁和钥匙。