Ist dieses schlüsselorientierte Zugriffsschutzmuster eine bekannte Redewendung?

Matthieu M. brachte ein Muster für den Zugriffsschutz indiese Antwort das ich vorher gesehen hatte, aber nie bewusst ein Muster in Betracht gezogen:

class SomeKey { 
    friend class Foo;
    SomeKey() {} 
    // possibly make it non-copyable too
};

class Bar {
public:
    void protectedMethod(SomeKey);
};

Hier nur einfriend der Schlüsselklasse hat Zugriff aufprotectedMethod():

class Foo {
    void do_stuff(Bar& b) { 
        b.protectedMethod(SomeKey()); // fine, Foo is friend of SomeKey
    }
};

class Baz {
    void do_stuff(Bar& b) {
        b.protectedMethod(SomeKey()); // error, SomeKey::SomeKey() is private
    }
};

Es ermöglicht eine feinkörnigere Zugriffskontrolle alsFoo a friend vonBar und vermeidet kompliziertere Proxy-Muster.

Weiß jemand, ob dieser Ansatz bereits einen Namen hat, d. H. Ein bekanntes Muster ist?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage