Только вопрос по стандартам.
Я создал класс-оболочку для управления сеансом PHP, который помогает автоматически организовывать данные сеанса на основе доступа к ним определенных внутренних модулей. Он разработан как синглтон, использующий метод getInstance()
для создания экземпляра, поскольку в данный момент времени будет только один сеанс. Кроме того, это стало для меня преимуществом, поскольку я могу предотвратить создание экземпляра объекта сеанса в (хотя, вероятно, ограниченном) шансе, что session_start()
завершится сбоем. Как пример:
public static function getInstance(){
if(!self::$_instance || !session_id()){
if(session_start()){
self::$_instance = new self(session_id());
}else{
return;
}
}
return self::$_instance;
}
Мой вопрос; хотя использование метода шлюза getInstance()
работает здесь естественным образом по нескольким причинам, является ли общепринятой/хорошей практикой реализация общедоступных статических методов getInstance()
или create()
в классах для управления созданием объекта, если объект зависит от внешних условий?
Я просто придерживаюсь соглашения о предоставлении getInstance()
в случае одиночных объектов и create()
в случае нескольких экземпляров объектов.
TL;DR: Я продолжаю использовать методы getInstance()
и create()
для управления созданием всех объектов. Я делаю это неправильно?
РЕДАКТИРОВАТЬ: немного уточнить мой вопрос; Помимо использования getInstance()
для синглетонов, мой конструктор обертывает методы create()
менее полезными и более склонными к плохим соглашениям? Должен ли я вызывать исключения из конструктора true или продолжать возвращать false из create()
?