Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Raz na zawsze z właściwościami/metodami statycznymi
Fred1485
post
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?
Go to the top of the page
+Quote Post
Crozin
post
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
Go to the top of the page
+Quote Post
Pyton_000
post
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.
Go to the top of the page
+Quote Post
Fred1485
post
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ę.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 21:36