@deniska_kuzmenko

Когда использовать static метода?

Не могу до конца понять когда использовать static методы а когда обычные. Можете посоветовать когда нужно объявлять метод static а когда обычным? Сразу говорю что я знаю чем они отличаются и как работают, проблема в том что я не знаю когда надо что применять.
  • Вопрос задан
  • 9488 просмотров
Решения вопроса 5
@dmitryKovalskiy
программист средней руки
использование слова static оправдано для методов и классов, где логически отсутствует необходимость в множественных объектах. Классический пример - математические функции. Объекты класса "калькулятор" не нужны никому. Поэтому в ООП языках, как правило, класс Math и ему подобные - статичны.
Ответ написан
@matperez
К примеру есть такой класс "Человечество". У человечества есть характеристика "средний рост", она не применима к отдельному человеку. Метод рассчитывающий средний рост и саму переменную которая его хранит нужно сделать статической.

Экземпляром класса "Человечество", является отдельный человек. Отдельный человек можно иметь свой конкретный рост, вес, цвет волос и так далее, он может ходить, есть, разговаривать - вот эти методы и переменные должны быть динамическими.
Ответ написан
Комментировать
Ridzhi
@Ridzhi
На вершине пищевой цепочки
Статические методы следует использовать в случае когда у сущности нет состояния, либо оно глобально.
Ответ написан
heksen
@heksen
При частом использовании функции. Static, насколько я помню это постоянное хранение в памяти, вплоть до завершения программы.
Ответ написан
Stalker_RED
@Stalker_RED
Представим сайт с заказом пиццы. Объект-корзина, в нее добавлено несколько разных объектов-пицц с разной ценой и объект-кола. Нужно посчитать сумму заказа, мы вызываем метод корзина->получитьСумму(). Этот метод пробегается по всем товарам корзины и считает сумму.

Теперь представим что метод получитьСумму() мы ради эксперимента делаем статическим. Где ему брать данные для расчета?

Теперь представим объект "Конфиг" и его метод "конфиг::получитьЗначение('ключ')"
Такой конфиг можно сделать синглетоном или вообще сделать статическим.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 13:02
3000 руб./за проект
23 апр. 2024, в 12:52
15000 руб./за проект