Статические методы и синглтон в PHP - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть следующий класс:

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 не равно нулю.Как я могу выдать исключение, если instance равно нулю?

Мне нужно использовать только static методы.Я не могу использовать нестатический.Я хочу использовать следующий дизайн:

MyClass::instance();
MyClass::methodOne(); // If no instance throws an Exception.

1 Ответ

3 голосов
/ 22 сентября 2011

Не делайте методы статичными, только сохраняйте instance() статическими.

Это приведет к:

$m = MyClass::instance();
$m->methodOne();
...