php 八大设计模式-单例模式

单例模式  记住口诀三私一公

单例模式是最常见的模式之一,在Web应用的开发中,常常用于允许在运行时为某个特定的类创建仅有一个可访问的实例。

特点

  1. $_instance必须声明为静态的私有变量;
  2. 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义;
  3. getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用;
  4. __clone()必须申明私有的方法,防止克隆对象;

优势

  • 实例化后只得到一个对象,减少内存的开销

使用场景

只实例化一次,内部实例化,对外只有一个开放方法,只能通过调取该方法进行调取实例化对象。 比如:数据库连接

<?php
class Demo {

    // 变量
    private static $_instance;

    // 构造函数
    final private function __construct() {

    }

    // 获取类唯一入口
    static public function getInstall() {
        if( self::$_instance === null ) {
            self::$_instance = new self();
        }
        return self::$_instance;
    }

    // 克隆函数
    final private function __clone() {

    }

    // 析构函数
    final private function __destruct() {

    }

}

$test1 = Demo::getInstall();
$test2 = Demo::getInstall();

// 判断是否是同一个对象
if( $test1 === $test2 ) {
    echo '同一个对象';
} else {
    echo '不是同一个对象';
}


 ?>
原文地址:https://www.cnblogs.com/fangdada/p/14848093.html