单例模式:
即一个类只被实例化一次,当其他人对其再次实例化时,便返回第一次实例化的对象。这种模式可以极大地节约资源。典型应用于数据库类的实例化。
实例
<?php /** * 单例模式 即一个类只被实例化一次,当其他人对其再次实例化时,便返回第一次实例化的对象。这种模式可以极大地节约资源。典型应用于数据库类的实例化。 */ //创建一个实用的配置类 class Config { /** * 为什么要用静态的? 因为静态属性于类的,被所有类实例所共享; * 为什么要能实例初始化为null? 便于检测 */ private static $instance = null; //默认也是null,可以省略 //实例化类时,会自动调用类的构造方法,因为将构造方法设置为private属性,限制为只能在类内部实例化 //禁止从类的外部实例化对象 private function __construct() { } //克隆方法也私有化 private function __clone() { } //外部仅允许通过一个公共静态方法来创建实例 public static function getInstance() { //检测当前的类属性$Instance是否已经保存了 if (self::$instance == null) { self::$instance = new self(); } return self::$instance; } } $obj1 = Config::getInstance; $obj2 = Config::getInstance; var_dump($obj1,$obj2); var_dump($obj1 === $obj2); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例