Können wir die Wiederverwendbarkeit des schlüsselorientierten Zugriffsschutzmusters verbessern?
Das schlüsselorientierte Zugriffsschutzmuster verwendet einen Schlüssel Klasse, um den Zugriff auf bestimmte Methoden zu steuern. Es kann jedoch umständlich sein, die Erstellung von Passschlüsseln für verschiedene Klassen und Methoden zu wiederholen. Diese Frage untersucht mögliche Verbesserungen, um die Wiederverwendbarkeit zu erhöhen.
In C 0x beheben zwei Weiterentwicklungen dieses Problem:
Durch die Nutzung dieser Funktionen wird der aktualisierte Code erheblich vereinfacht:
template <typename Key> class passkey { private: friend Key; passkey() {} }; template <typename... Keys> class allow { public: template <typename Key> allow(const passkey<Key>&) { static_assert(is_contained<Key, Keys>::value, "Passkey is not allowed."); } };
Diese aktualisierte Version bietet mehrere Vorteile:
Mit diesen Verbesserungen wird das schlüsselorientierte Zugriffsschutzmuster aussagekräftiger und wiederverwendbar, was den Prozess der Implementierung der Zugriffskontrolle in komplexen Softwaresystemen erheblich vereinfacht.
Das obige ist der detaillierte Inhalt vonKann C 0x die Wiederverwendbarkeit des schlüsselorientierten Zugriffsschutzmusters verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!