zoukankan      html  css  js  c++  java
  • 设计模式-单例模式

    <?php
    
    /**
     * 单例模式
     * 
     * 以前写单例构造器的时候总是为如何把需要的参数传给类而烦恼
     * 
     *  如果项目中的类文件都采用这种设计的话就ok了
     * 
     *  每次获取实例的时候都可以更新资源变量
     */
    class Utils_Common {
    
        private static $_instances = array();
    
        /**
         * 单例包装
         * @param 类名 $klass
         * @param 资源变量 $resource
         * @return null object
         */
        public static function getInstance($klass, $resource = null) {
            if (isset(self::$_instances[$klass])) {
                if (null !== $resource) {
                    self::$_instances[$klass]->setResource($resource);
                }
                return self::$_instances[$klass];
            } else {
                if (class_exists($klass)) {
                    self::$_instances[$klass] = new $klass($resource);
                    return self::$_instances[$klass];
                } else {
                    return null;
                }
            }
        }
    
    }
    
    class Db {
    
        //参数等资源
        private $resource;
    
        public function __construct($resource) {
            $this->resource = $resource;
        }
    
        public function setResource($resource) {
            $this->resource = $resource;
        }
    
        public function getResource() {
            return $this->resource;
        }
    
        protected function getRsrcParams($key) {
            return isset($this->resource[$key]) ? $this->resource[$key] : array();
        }
    
        protected function setRsrcParams($key, $value) {
            $this->resource[$key] = $value;
        }
    
        public function go() {
            echo 'success:' . $this->getRsrcParams('host');
        }
    
    }
    
    header('Content-Type:text/plain;charset=utf-8');
    Utils_Common::getInstance('Db', array('host' => 'localhost'))->go();
  • 相关阅读:
    day04作业
    一个简单的gridlayout栗子
    用户名、密码等15个常用的js正则表达式
    html 颜色
    心态好的人,一辈子都好
    怎么样好好的聊天呢
    一篇引用文章
    再见,发微信不回的人
    第一个不怎么正经的网页
    关于学科目标
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/4307666.html
Copyright © 2011-2022 走看看