Ответы пользователя по тегу PHP
  • Почему singleton круче global?

    Artemzr
    @Artemzr
    singleton все же удобнее/безопаснее.
    Есть языки, в которых порядок инициализации глобальных объектов не определен (с++ например), в итоге, если у нас два глобальных объекта в разных файлах, и если одни из них в конструкторе вызывает методы второго объекта, то у нас ровно 50% получения ошибки. На помощь приходит singleton.
    Улучшается читабильность кода. Не совсем понятно иногда, откуда взялся этот глобальный объект (распространяется он путем подключении заголовочного файла), приходится рыскать по хидерам и узнавать что да как (это если ваш код читает другой программист), а так — вы написали в конструкторе что-то типа foo = Foo::getInstance();, сразу станет ясно.
    Ну и наконец, это более соответствует принципу ооп, когда все сокрыто в классах/структурах, и нет ничего вне их (никаких глобальных функций или переменных).
    Ответ написан
    Комментировать