分析CMMS系统笔记创建一个公共类

在这个系统中,很多的类,它不直接实例化,而是使一个静态方法来实例化。

在这个静态方法中,使用__CLASS__这个名字来实例化。我感觉这样写非常好,让我想起的如果是ASP.NET的话,你改类名的时候,VS会自动提示你将所有用到这个类名的地方都帮助你改掉,但是PHP没有这样智能的软件,使用这种方法就可以实现。

例子如下:

<?php
class Demo
{
private static $inst; //存储实例化过的对象,保存在内存中,再次调用时不再实例化
public static function getInstance($arg=null)
{
if(!isset(self::$inst)) //如果实例化过了,不再实例
{
$c=$__CLASS__;
self
::$inst=new $c;
self
::$inst->init($arg);
}
return self::$inst;
}
public function init($arg=null)
{
//do something;
}
}
?>

  

原文地址:https://www.cnblogs.com/bugY/p/2134661.html