php设计模式之单例模式

<?php
/**
 * 单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
 * final 防止类被继承重构
 */
final class Single{
	//静态存储单例对象
	private static $instance;

	private function __construct(){
		echo "实例化对象" . PHP_EOL;
	}

	/**
	 * 返回单例对象
	 * @Author   feiyu
	 * @DateTime 2017-02-10
	 * @since    [version]
	 */
	public static function getInterface(){
		//判断静态属性是否为空或者是否为单例类型
		if(empty(self::$instance) || !(self::$instance instanceof Single)){
			self::$instance = new Single();
		}

		return self::$instance;
	}

	/**
	 * 对象工具方法
	 * @author feiyu
	 * @dateTime 2017-02-10
	 */
	public function test(){	
		echo "hello word";
	}

	/**
	 * 防止类被用于克隆
	 * @author   feiyu
	 * @dateTime 2017-02-10
	 */
	private function __clone(){
		trigger_error("禁止克隆该类",E_USER_WARNING);
	}
}

$obj = Single::getInterface();
$obj->test();

  

原文地址:https://www.cnblogs.com/feiyujinghong/p/6386153.html