昨天工作没那么忙,所以多谢了点跟模式相关的代码
单例模式,保证在一个进程中一个类只有一个对象
<?php
//单例模式:一个进程中始终某一个类只有一个对象存在
final class SignalOnly {
protected static $instance =null;
public static function getInstance(){
if(empty(self::$instance)){
//延迟绑定,简单的说就是找到方法的最后的调用者
//self::$instance = new static();
self::$instance = new static();
}
return self::$instance;
}
private function __construct(){
}
private function __clone(){
}
}
var_dump(SignalOnly::getInstance());
//可以继承子类的设计模式
class Signal {
protected static $instance =null;
public static function getInstance(){
if(empty(self::$instance)){
//延迟绑定,简单的说就是找到方法的最后的调用者
//self::$instance = new self();
self::$instance = new static();
}
return self::$instance;
}
protected function __construct(){
}
protected function __clone(){
}
}
class SignalSon extends Signal{
}
var_dump(SignalSon::getInstance(),Signal::getInstance());