Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 4 Dołączył: 6.09.2007 Ostrzeżenie: (0%)
|
Hej,
Ostatnio zacząłem przepisywać skrypt na OOP i mam kilka funkcji (nie powiązanych ze sobą), które nie nadają się do standardowej klasy (gdzie tworzy się instancje obiektu) i tak sobie myslałem, czy byłoby prawidłowo jeślibym utworzył klasę (np. Tools czy Utilities) w której trzymałbym przydatne statyczne metody? Czyli stworzyłbym klasę, która nigdy nie będzie miała obiektu a będzie istniała tylko po to, żeby być kontenerem na statyczne metody. Coś na tej zasadzie:
I teraz mam pytanie do Was ... ma to jakiś sens? (IMG:style_emoticons/default/biggrin.gif) Jakie jest prawidłowe podejście? Czy funkcje powinny "luzem" w kodzie leżeć a ja nie powinienem za wszelką cenę opakowywać wszystkiego w OOP? Pozdrawiam MD Ten post edytował MiChaSSs 28.11.2010, 22:45:51 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%)
|
Ja mam cały zbiór klas pomocniczych. Nazwałem go Cat - sam już nie pamiętam od czego to był skrót ;-) W nim mam klasy takie jak np.
Cat_Converter_String Cat_Converter_Price Cat_Converter_Array Umieszczam je w każdym praktycznie projekcie, który robię. Np. po co tysiąc razy pisać metodę do przeliczania ceny brutto, naliczania rabatów, czy "slugowania" stringa jak można to umieścić w klasach pomocniczych. Jest to lepsze rozwiązanie, bo oszczędza czas i ogranicza głupie pomyłki. Umieszczanie wszystkiego w modelu jest imo kiepskim pomysłem. Przykład nie będzie przeliczanie cen netto na ceny brutto - jeśli umieścisz to w modelu np. sklepu internetowego, gdzie robisz takie przeliczenia w wielu miejscach to po pewnym czasie mogą pojawić się niekonsekwencje typu: - w jednym miejscu zaokrąglasz cenę a w drugim wartość produktów przez co otrzymujesz inne wyniki - w przypadku dodania rabatu w jednym miejscu będziesz skracał dopiero wynik końcowy a w innym skrócisz raz po obliczeniu rabatu a następnie po obliczeniu ceny brutto - i znowu powstają groszowe niezgodności, które trudno potem wychwycić. Mając wszystko scentralizowane łatwiej uniknąć takich głupich błędów. Ja osobiście lubię klasy z statycznymi metodami narzędziowymi i często korzystam. Autoloader też jest dla mnie ważny bo upraszcza kod. |
|
|
|
MiChaSSs [OOP] Klasa tylko z funkcjami statycznymi 28.11.2010, 22:45:07
skowron-line Helpery to klasy ze statycznymi metodami możesz zr... 28.11.2010, 22:49:07
Crozin Takie konstrukcje są pozbawione sensu z punktu wid... 28.11.2010, 23:02:49
MiChaSSs A istnieje jakis standard, który by definiował co ... 29.11.2010, 18:44:08
mike Cytat(skowron-line @ 28.11.2010, 22... 30.11.2010, 09:44:40 
skowron-line Cytat(mike @ 30.11.2010, 09:44:40 ) A... 30.11.2010, 10:02:49
marcio CytatTak mi się napisało, poza tym helpery nie mus... 30.11.2010, 12:35:10
Zyx Z funkcjami jest taki problem, że nie podlegają au... 30.11.2010, 22:58:02
aart3k Reasumując: biorąc pod uwagę ograniczenia PHP (wła... 1.12.2010, 12:43:34
Quadina Zgodzę się z użytkownikiem aart3k na prawie całej ... 1.12.2010, 13:56:09
Crozin Hmmm... faktycznie brak autoloadera to już poważna... 1.12.2010, 14:36:57
aart3k @Crozin: you missed the point, chodziło o klasę To... 1.12.2010, 15:27:22
thek Może więc aart3k chodzi Ci o system helperów z Koh... 1.12.2010, 16:04:51
MiChaSSs Okej, czyli poprawiając mój pierwszy, aby upewnić ... 1.12.2010, 17:36:28
aart3k nie wiem czy z abstracta można wywoływać statyczne... 1.12.2010, 18:52:28 
mike Cytat(MiChaSSs @ 1.12.2010, 17:36:28 ... 1.12.2010, 21:18:08 
MiChaSSs Cytat(aart3k @ 1.12.2010, 18:52:28 ) ... 1.12.2010, 22:37:23 
manro Cytat(MiChaSSs @ 1.12.2010, 23:37:23 ... 2.12.2010, 16:55:45
athabus Dokładnie jak kolega wyżej pisze. Twoje zastosowan... 2.12.2010, 17:04:01 
MiChaSSs Cytat(manro @ 2.12.2010, 16:55:45 ) A... 2.12.2010, 18:23:28
smentek Cytat(MiChaSSs @ 2.12.2010, 19:23:28 ... 10.12.2010, 17:27:26
mike Cytat(smentek @ 10.12.2010, 17:27:26 ... 13.12.2010, 08:54:30 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 17:37 |