Коли використовувати static методу

Наприклад є такий клас "Людство". У людства є характеристика "середнє зростання", вона не може бути застосована до окремої людини. Метод розраховує середнє зростання і саму змінну яка його зберігає потрібно зробити статичної.

Екземпляром класу "Людство", є окрема людина. Окрема людина може мати свій конкретний зріст, вага, колір волосся і так далі, він може ходити, їсти, розмовляти - ось ці методи і змінні повинні бути динамічними.

Уявімо сайт із замовленням піци. Об'єкт-корзина, в неї додано кілька різних об'єктів-піц з різною ціною і об'єкт-кола. Потрібно порахувати суму замовлення, ми викликаємо метод корзіна-> получітьСумму (). Цей метод пробігається по всім товарам кошика і вважає суму.

Тепер уявімо що метод получітьСумму () ми заради експерименту робимо статичним. Де йому брати дані для розрахунку?

Тепер уявімо об'єкт "Конфиг" і його метод "конфиг :: получітьЗначеніе ( 'ключ')"
Такий конфиг можна зробити Синглетон або взагалі зробити статичним.

спасибі) хороший приклад) просто у мене виходить в основному так корзіна-> получітьСумму ($ data) або корзіна-> получітьСумму ($ param1, $ param2) означає я не правильно програмую? (

deniska_kuzmenko. Значить у вас не ООП. Об'єктів немає, а клас використовується тільки як сховище / неймспейс / якась обгортка для функцій.

Stalker_RED. ви маєте рацію, напевно так і є (це сильно погано? такий метод неправильний і краще занепаде так писати код?

deniska_kuzmenko. спеціально припиняти "так писати" не потрібно. Потрібно зрозуміти що таке об'єкт і в яких випадках його варто описувати, і почати це знання поступово застосовувати. Писати класи на кожен чих - теж великій кількості.

Схожі статті