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

    复制代码
    /**
     * @author xiaojiang
     * 方式1
     */
    class father{
        static $models = [];
        static public function getInstance(){
            $name =  get_called_class();
            if( !isset( self::$models[$name] ) ){
                self::$models[$name] = new $name();
            }
            return self::$models[$name];
        }
        
        public function m1(){
            echo "fm1";
        }
        public function m2(){
            echo "fm2";
        }
    }
    class child extends father{
        public function m1(){
            echo 'cm1';
        }
    }
    father::getInstance()->m1();
    child::getInstance()->m1();
    
    /**
     * 方式2
     */
     class base{
    
        static protected  $ins = [];
        
        static public function getInstance(){
            $cName = get_called_class();
            if( !isset(static::$ins[$cName]) ){
                static::$ins[$cName] = new $cName;
            }
            return static::$ins[$cName];
        }
        
        public function m1(){
            return "base m1";
        }
        
        public function m2(){
            return "base m2";
        }
        
    }
    
    class cbase extends base{
        
        //static public $ins = null;
        static public function getInstance(){
            return parent::getInstance();
        }
        
        public function m1(){
            return "cbase m1<br>";
        }
        
    }
    
    
    echo base::getInstance()->m1()."<br>";
    
    echo cbase::getInstance()->m1(); 
    复制代码
  • 相关阅读:
    Bootstrap的介绍和响应式媒体查询
    jquery内容补充
    jquery的ajax
    jquery的事件
    JQuery的筛选方法
    jquery的css
    jQuery的文档操作
    操作表单域中的value值
    jquery的属性操作
    jquery的效果
  • 原文地址:https://www.cnblogs.com/benpaodegegen/p/6440500.html
Copyright © 2011-2022 走看看