![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
W ramach ćwiczeń z OOP napisałem sobie prostą klasę Debugger, która umożliwia pobranie czasu generowania strony. Kod wyglądał tak:
W pewnym momencie zacząłem zastanawiać się czy nie lepiej byłoby zdefiniować metody jako statyczne, po co tworzyć obiekt.. Więc przerobiłem powyższy kod na taki:
No ale idąc tym tokiem rozumowania, większość albo dużą ilość klas można by tak stworzyć. W takim razie kiedy tworzyć normalne obiekty a kiedy klasy statyczne? Jak rozróżnić co będzie lepsze/właściwe? Do moderatora: Pomyliłem dział, proszę przenieść do obiektówki. Ten post edytował J4r0d 25.12.2006, 00:03:31 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Używam metod statycznych do:
1. Utworzenia instancji Singletona (rzadko) 2. Dokonania operacji na klasie przed utworzeniem jej instancji (bardzo rzadko) 3. Do upakowania w systemie funkcji, które powinny być, ale z jakichś względów tworzenie dla nich obiektu byłoby bez sensu. (czasami) Pewnie jeszcze bym coś wynalazł, ale to powinno wystarczyć : ) Myśl obiektami w systemie - nie klasami. Pozdrawiam. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
3. Do upakowania w systemie funkcji, które powinny być, ale z jakichś względów tworzenie dla nich obiektu byłoby bez sensu. (czasami) Właśnie do tego zmierzam. Jak znaleźć ten złoty środek. Prosta klasa, którą przedstawiłem wyżej - można utworzyć obiekt i pobrać czas generowania strony. Można także zrobić to bez tworzenia obiektu, używając funkcji statycznych. Pisząc jakiś system używając tylko obiektów to dobry pomysł, ale ktoś wymyślił w jakimś celu funkcje statyczne, nie po to, żeby pokazać że coś takiego jest ale żeby tego używać. Podpatrując kod jakiejś aplikacji często zastanawiam się dlaczego autor w tym miejscu użył funkcji statycznych, skoro mógł utworzyć obiekt i na odwrót. Dlatego zacząłem się zastanawiać gdzie jest rozgraniczenie - tworzyć obiekt czy funkcja statyczna.. Pisząc to myślę o prostych rzeczach jak powyższy kod, bo zdaję sobie sprawę, że są rzeczy których nie osiągnie się tylko statycznymi funkcjami.. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 18:16 |