.singleton.php 文件 (单例模式可被继承 代码实例)

<?php
namespace lib;
abstract class Singleton
{
//设置一个私有的静态属性作为中间变量
private static $instancePool = []; //將構造及克隆私有化,防止通过克隆等方式进行调用
final private function __construct(){
$this->init();
} final private function __clone(){} protected function init() {} final public static function getInstance() {
$class = get_called_class();
//如果,所设置的静态属性的值,还为null 的话,那么就需要实例化自己,否则直接返回
if (!isset(self::$instancePool[$class])) {
self::$instancePool[$class] = new static();
}
return self::$instancePool[$class];
}
}
上一篇:常被问到的十个 Java 面试题


下一篇:Java虚拟机(二):Java GC算法 垃圾收集器