企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
### 概述 目的是能够存储在应用程序中经常使用的对象实例,通常会使用只有静态方法的抽象类来实现(或使用单例模式)。需要注意的是这里可能会引入全局的状态,我们需要使用依赖注入来避免它。 ### 实例 ~~~ abstract class Registry{ const LOGGER = 'logger'; private static $storeValues = []; private static $allowKeys = [ self::LOGGER, ]; public static function set(string $key, $value) { if(!in_array($key, self::$allowKeys)){ //TODO,抛异常 } self::$storeValues[$key] = $value; return true; } public static function get(string $key) { if(!in_array($key, self::$allowKeys) || !isset(self::$storeValues[$key])){ //TODO, 抛异常 } return self::$storeValues[$key]; } } ~~~