最近做项目感觉代码规划得不太好,于是想深入了解下设计模式。在这写写博客加深一下印象。首先来聊聊单例模式吧。
单例模式保证了全局该类只有一个实例,想多次使用该类的时候不需要频繁创建与销毁,节省了系统资源。
代码:
// final禁止继承
final class Singleton
{
// 保存实例
private static $instance;
// 防止类在外部被实例化
private function __construct()
{
}
// 防止对象被复制
private function __clone()
{
}
// 单例入口
public static function getInstance()
{
if( !(self::$instance instanceof self) ) {
self::$instance = new self();
// echo "new"; // 测试代码
}
// echo "get\n"; // 测试代码
return self::$instance;
}
// 测试方法
public function test()
{
echo 'test';
}
}
// 使用方法
$singleton = Singleton::getInstance();
$singleton->test();