我有下一堂课:
class MyClass {
private $_instance = null;
private function __clone() {}
private function __construct() {}
public static function instance()
{
if (is_null(self::$_instance)) {
self::$_instance = new self;
}
return self::$_instance;
}
public static function methodOne() {}
public static function methodTwo() {}
public static function methodThree() {}
public static function methodFour() {}
}
我有很多方法method...()
。但是,只有instance
不为null时,此方法才可执行。如果instance
为空,我怎么能抛出异常?
我只需要使用static
方法。我不能使用非静态。我想使用下一个设计:
MyClass::instance();
MyClass::methodOne(); // If no instance throws an Exception.
答案 0 :(得分:3)
不要将方法设为静态,只保持instance()
静态。
它将导致:
$m = MyClass::instance();
$m->methodOne();