@dev400

Статика или функции?

Глобальное состояние это конечно плохо, но есть функционал, для которого объект не нужен. Например - валидация чего либо, обрезка картинки и тд. Выбрать для этого обычные функции, или статику? Супер разницы я не вижу.
  • Вопрос задан
  • 917 просмотров
Решения вопроса 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Глобальное состояние - это плохо. Но вот только вещи типа валидации, обрезки картинок и т.д. не имеют состояния. У вас один вход и один выход.

Потому функций для этого достаточно.

Статику следует использовать тогда, когда вам нужна функция, работающая с объектами одного типа, и когда этой функции нужен доступ к состоянию объекта. Идеальный пример - статические методы фабрики. Ключевой момент - у этих функций нет своего состояния.

Ну и ооочень редко нужно хранить статическое состояние. Например сингелтоны полезны когда вам нужно работать с ком портом и вам смертельно важно что бы небыло ни единой возможности создать два экземпляра класса для работы с оным.
Ответ написан
Комментировать
Если функция атомарна и не имеет зависимостей от других функций \ классов \ внешних переменных, а также может вызываться многократно за один цикл выполнения, то можно использовать ее. Наглядный пример - простая обрезка картинок, либо форматирование текста.

Если функция имеет зависимости, либо слишком большая (это может привести к ее разбиению на несколько функций в будущем), а также не должна выполняться более одного раза за цикл выполнения, то лучше использовать класс с методами, возможно - синглтон. Наглядный пример - управление подключением к базе данных, когда нам нужно не допустить повторного вызова данного метода.

И как по мне, нет ничего страшного в создании объекта, пусть даже и для единоразового действия.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект