@deniska_kuzmenko

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы