龚哥哥 - 山里男儿 爱生活、做自己!
PHP单例模式 设计模式 面向对象
发表于 2015-8-31 | PHP
<?php

/**
 * 单例模式
 * @author  Devil
 * @version v_0.0.1
 */
class Singleton
{
    private $parem;

    /**
     * [__construct 构造方法]
     * @param [mixed] $param [参数]
     */
    private function __construct($param)
    {
        $this->param = $param;
    }

    /**
     * [Instantiate 静态方法, 用于实例化类]
     * @param  [mixed] $param [参数]
     * @return [object]   [类对象]
     */
    public static function Instantiate($param)
    {
        static $object = null;
        if(!is_object($object)) $object = new self($param);
        return $object;
    }

    /**
     * [Show 测试方法]
     */
    public function Show()
    {
        print_r($this->param);
    }
}

/**
 * 使用列子
 */
$param = array('test', 'demo', 'devil');
$obj = Singleton::Instantiate($param);
$obj->Show();

/**
 * $obj = Singleton::Instantiate($param);
 * 不管在项目中多少次这么对类进行实例化,都不会重复创建类对象。
 * $object 被定义成静态变量,不能被第二次赋值。
 * 只要$object是一个对象就直接返回当前对象,则进行实例化并返回。
 *
 * 单例模式可以防止重复创建对象,减轻内存开销。
 */

?>

发表评论:

TOP