![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 22 Dołączył: 10.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
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ń. Ten post edytował Crozin 1.10.2015, 18:48:10 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 22 Dołączył: 10.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
No już mi to rozjaśniło myśli trochę.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 21:36 |