Fred1485
1.10.2015, 18:17:30
Witajcie,
W tym miejscu chciałbym się poradzić, aby raz na zawsze rozprawić się z problemem, czy i kiedy stosować właściwości czy też metody statyczne.
Z definicji jasno wynika, że odnoszą się one do klasy a nie instancji. Jest to zrozumiałe, ale w praktyce co uwarunkowuje mnie do tego czy ich użyć czy nie?
Zaczynam pisać jakąś klasę i zastanawiam się jakie metody czy właściwości musi posiadać, ok już wszystko wiem, ale teraz problem jest które mają być statyczne a które nie.
Czy to w większości zależy od programisty, jak mu się "umyśli" czy jest jakiś większy tego powód. Może ktoś powie że nie trzeba tworzyć instancji klasy, ale czy ta jedna linijka coś zmienia w praktyce?
Przeszukałem trochę internetu i różne głupoty i nie głupoty piszą. Towarzysze pomożecie dając jakieś konkretne powody?
Crozin
1.10.2015, 18:46:48
Jest bardzo mało sytuacji, gdzie faktycznie uzasadnionym jest użycie metod/właściwości statycznych. Można by do nich zaliczyć:
- metody z klas-pomocniczych ogólnego użytku wykonujące relatywnie proste operacje wyłącznie na podstawie danych wejściowych podanych w argumentach,
- metody tworzące instancje konkretnych obiektów - przy czym tutaj często warto utworzyć sobie osobny obiekt klasy-fabryki,
- czasami pewne stałe/dane statyczne mogą być wyrażone w formie metod/właściwości statycznych - przy czym tutaj jest jedno wielkie "to zależy",
- pewnie kilka innych sensownych zastosowań by się znalazło.
1. Generalnie o ile nie masz dobrego uzasadnienia dla wykorzystania metody/właściwości statycznej nie powinieneś tego robić.
2. Statyczne elementy tworzą twarde powiązania pomiędzy różnymi częściami kodu - a to prowadzi to utrudnień przy przenoszeniu, testowaniu, rozszerzaniu kodu itp.
3. Elementy statyczne zawsze współdzielą ten sam stan w PHP, a to często prowadzi jedynie do ograniczeń.
Pyton_000
1.10.2015, 20:06:02
Im mniej static tym lepiej.
Jeśli już to dodam od siebie np. Klasa z konfiguracją, może być statyczna bo konfigu używasz wszędzie (owszem może być i singleton)
poszukaj na webmastah.pl o static, tam jest fajny art dlaczego nie warto ich stosować.
Z drugiej strony to jest trend. To co kiedyś było dobre super ohh ahhh teraz uważa się za antywzorzec.
Fred1485
2.10.2015, 14:58:43
No już mi to rozjaśniło myśli trochę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.