PHP中的单例模式

确保一个类只有一个实例,不能重复实例,只能它自己实例,向整个系统提供这个实例。

三私:私有化静态属性、构造方法、克隆方法

一公:公有化静态方法

<?php
class Danli
{
    //保存类实例的私有静态成员变量
    private static $_instance;
​
    //定义一个私有的构造函数,确保单例类不能通过new关键字实例化,只能被其自身实例化
    private final function __construct()
    {
        echo 'test __construct';
    }
​
    private function __clone()
    {
        // TODO: Implement __clone() method.
    }
​
    public static function getInstance()
    {
        //检测类是否被实例化
        if (!(self::$_instance instanceof self)) {
            self::$_instance = new Danli();
        }
        return self::$_instance;
    }
}

 

代码中用到的关键词:

1、final:PHP5新增了一个final关键词。如果一个类被声明为final,则不能被继承;如果父类中的一个方法被声明为final,则子类无法覆盖该方法。

2、instanceof:判断一个对象是否为某个类的实例;判断一个对象是否实现了某个接口

posted @ 2019-08-21 10:22  Life_Coding  阅读(81)  评论(0)    收藏  举报