Просто вопрос о стандартах.
Я создал класс-оболочку для управления сеансами 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()
?