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?