zoukankan      html  css  js  c++  java
  • 注册表模式

    <?php
    /**
     * 虽然面向对象编程的思想抵制使用全局变量
     * 但是全局变量在某些情况下利大于弊
     * 为何非要局限于一些不存在的限制,适合的才是最好的。
     *
     * 下面介绍两种可供全局使用的数据存储模式
     * 注册表模式和会话级注册表模式
     *
     */
    
    
    /**
     * 基于键值对的全局唯一注册表
     */
    class Register {
        private static $instance;
        private $values = array();
        
        public static function instance() {
            if (!isset(self::$instance)) {
                self::$instance = new self;
            }
            
            return self::$instance;
        }
        
        public function get($key) {
            if (isset($this->values[$key]))
                return $this->values[$key];
            return FALSE;
        }
        
        public function set($key, $val) {
            $this->values[$key] = $val;
        }
    }
    
    /**
     * 会话级别的注册表
     * 本质是将会话数据存入session
     */
    class Register2 {
        private static $instance;
        private $values = array();
        
        public static function instance() {
            if (!isset(self::$instance)) {
                self::$instance = new self;
            }
            
            return self::$instance;
        }
        
        public function get($key) {
            if (isset($_SESSION[__CLASS__][$key]))
                return $_SESSION[__CLASS__][$key];
            return FALSE;
        }
        
        public function set($key, $val) {
            $_SESSION[__CLASS__][$key][$key] = $val;
        }
    }
  • 相关阅读:
    springMVC静态资源
    MyBatis Generator
    使用springMVC时的web.xml配置文件
    Semaphore
    spring注解驱动--组件注册
    第1章 初始Docker容器
    docker面试整理
    第5章 运输层
    验证码
    带进度条的上传
  • 原文地址:https://www.cnblogs.com/mtima/p/3180873.html
Copyright © 2011-2022 走看看