PHP设计模式之单例模式

  • 单例模式:

    • 有且只生成一个对象实例的特殊类。

    • 通俗解释:单独的一个实例(单例)(减少类外部调用方法new关键字的使用)。 

  • 应用场景:

    • 如Windows下的任务管理器,只能打开有且一个。

    • web连接数据库的语句有且只需要一次。

    • web应用的配置文件,如何ThinkPHP5下的config,共享的资源

    • 日志文件为了确保一致性,我们通常只会有一个实例去打开日志文件,否则不好追加

    • 网站的计数器,一般也是采用单例模式实现,否则难以同步。

  •  例子:

  • props[$key] = $val;
        }
    
        /**
         * @param $key
         * @return mixed
         * 用一个方法来获取属性值
         */
        public function getProperty($key){
            return $this->props[$key];
        }
    
    
    }
    
    /**
     * 静态调用获取实例
     * 并没有在外部使用new关键字
     */
    $pref = preferences::getInstance();
    $pref->setProperty("name" , "matt");
    
    unset($pref);//移除引用
    
    $pref2 = preferences::getInstance();
    print $pref2->getProperty("name")."\n";//该属性值并没有丢失
    //输出matt

     

你可能感兴趣的:(PHP设计模式)