php实现设计模式之 单例模式

<?php
/*单例模式:作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局地提供这个实例。(创建型模式)
 * 
 * 
 */
class singleton{
	
	private static $instance;//私有静态成员变量,保存唯一实例
	
	private function __construct(){//私有构造方法,确保不可被实例化
		
	}
	private function __clone(){//私有克隆方法,实例不可被复制
		
	}
	
	public static function getinstance(){//公共静态方法,完成自身实例化,全局提供这个实例
		if(!self::$instance instanceof self){
			self::$instance = new singleton();//self::$instance = new self();也行
		}
		return self::$instance;
	}
	
	public function hello(){
		echo '我是单例类的方法产生的hello';
	}
}

$a = singleton::getinstance();
$a->hello();
?>

  UML类图

 

在此补充一句,self 表示类名,完全可以用类名替代

posted @ 2014-09-02 17:49  tai君  阅读(277)  评论(0编辑  收藏  举报