Matthieu M.在我之前見過的這個(gè)答案中提出了一種訪問保護(hù)模式,但是從來沒有自覺地考慮過一種模式:class SomeKey { friend class Foo; SomeKey() {} // possibly make it non-copyable too};class Bar {public: void protectedMethod(SomeKey);};在這里,只有一個(gè)friend密鑰類可以訪問protectedMethod():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 }};它允許更多的細(xì)粒度訪問控制不是制造Foo一個(gè)friend的Bar,避免了更多的復(fù)雜模式進(jìn)行代理。有誰知道這種方法是否已經(jīng)有名稱,即已知模式?
這種面向密鑰的訪問保護(hù)模式是已知的習(xí)慣用法嗎?
泛舟湖上清波郎朗
2019-11-11 15:43:27