一个菜鸟驿站!

单例模式

PHP 2018-04-26 浏览(2086) 评论(0)
- N +

文章目录 [+]

单例模式

单例模式是设计模式最简单的一种,不多说,下边先上代码。


Danli.php

<?php
class Danli{
    //  保存类的实例静态成员变量
    static private $_instance = null;

    //  私有的构造方法
    private function __construct()
    {
        echo '这是私有的构造方法。。。。。。。。。。';
    }

    //  用于访问类的实例的公共静态方法
    static function getInstance(){
        //  检测是否被实例化
        if(!(self::$_instance instanceof Danli)){
            echo '第一次实例化。。。。。。。。';
            self::$_instance = new Danli();
        }
        return self::$_instance;
    }

    public function test(){
        echo 'danli/test。。。。。。。。。。。。';
    }
}


index.php

<?php
require './danli.php';
//  第一次类的调用
$first = Danli::getInstance();
$first->test();

$second = Danli::getInstance();
$second->test();

输出结果如下:

第一次实例化
这是私有的构造方法
danli/test。。。。
danli/test。。。。

可以看到只实例化了一次,实现了两次调用内置方法。


接下来简单说一下单例模式。


简单点说,就是让类这个对象成为系统中唯一实例,避免大量的new消耗资源,也方便设置钩子输出日志信息等。

单例模式的详解很多,这里不多解释了,就详细说一下实现方式。

1.一个private__construct()是必须的,单例类不能在其他地方被实例化,只能被自己实例化。

2.拥有一个保存类的实例的私有静态成员变量。

3.一个静态的公用的静态方法,用于实例化这个类,且访问这个类的实例。

标签:
作者:猫巷

,

上一篇:
下一篇:
评论列表 (0)条评论

发表评论

召唤伊斯特瓦尔