单例模式

来源:互联网 发布:hash算法的实现原理 编辑:程序博客网 时间:2024/05/01 18:29
class SingletonMode{//1.静态属性,用于存储new的对象//2.因为是静态属性,所以在整个php生命周期会永久存在private static $obj;//1.私有构造函数//2.当前类只能在内部实例化,而无法在外部实例化private function __construct() {}//getObj用于外部获取实例化的对象//只能通过getObj获取对象,但是方法只会创建一个对象,实现了单一性public static function getObj(){//判断静态属性是否为空//1.如果为空表示当前是第一次调用,所以创建一个对象存入静态属性并返回//因为静态属性会持久存在,所以下次再次获取对象的时候直接从静态属性返回//2.如果不为空表示当前类已被创建,因此利用静态属性的特性直接返回if ( empty( self::$obj ) ) {echo '创建对象';self::$obj = new SingletonMode();}return self::$obj;}}

<?phpinclude_once('SingletonMode.php');//$mode = new SingletonMode();//报错,不能实例化对象//需要通过静态方法获取对象SingletonMode::getObj();SingletonMode::getObj();SingletonMode::getObj();SingletonMode::getObj();


如图:多次调用获取对象,但是只进行了一次实例化


0 0