PHP从版本5.4.0开始支持被称为trait的代码重用机制。
下面的代码根据《PHP Master: Write Cutting-edge Code》修改而成。
trait Singleton {
private static $_instance = null;
public static function getInstance(){
$class = __CLASS__;
if (!(self::$_instance instanceof __CLASS__)) {
self::$_instance = new $class();
}
return self::$_instance;
}
}
class DBConnection extends PDO {
use Singleton;
private function __construct() {
parent::__construct(...);
}
}
可以看出,通过use Singleton语句,可以方便的重用Singleton设计模式的代码。