每日一模式之单例模式

昨天工做没那么忙,因此多谢了点跟模式相关的代码php

单例模式,保证在一个进程中一个类只有一个对象设计模式

<?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());
相关文章
相关标签/搜索