Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy rozbijać na wiele klas?
Fifi209
post
Post #1





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Piszę grę, zastanawiam się jak rozplanować sobie klasy, czy wrzucić wszystko do worka czy nie, chodzi dokładnie o to, że obecnie mam dwie klasy, jedna służy do zarządzania samymi użytkownikami, tj. logowanie, zmiana hasła, rejestracja etc. druga natomiast obsługuje rzeczy związane stricte z grą, punkty, surowce. Zastanawiam się czy połączyć je jakoś, czy zostawić w takiej postaci. Póki co wiem, za co każda odpowiada i gdzie czego szukać, wydaje się to przemawiać na korzyść tego rozwiązania.

Drugie pytanie: chcę mieć możliwość zwrócenia danych w odpowiednim formacie np. JSON, XML, z początku myślałem o rozwiązaniach rodem z C#, np. klasa.metoda().toString() odpowiednikiem w php byłaby klasa-> metoda()-> toString() czy da się coś takiego zrobić? Drugim rozwiązaniem jest napisanie klasy, która przyjmowałaby dwa argumenty dane i format w jakim mają zostać zwrócone, jednak druga konstrukcja jest o wiele mniej wygodna.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Rozwiązanie z klasą posiadającą metody to*() jest moim zdaniem gorsze od zaprezentowanego przeze mnie (osobne klasy). Dlaczego?
1. Lepiej jest dokładać nowe klasy zwracające dane w nowych formatach niż dokładać metody do istniejącej klasy.
2. Co w przypadku gdy potrzebujesz zwrócić dane w jednym formacie, ale w różny sposób (np. różne kodowanie XMLa)? Lepiej utworzyć nową klasę dziedziczącą po (przykładowo) Renderer_Xml, w której zmieni się jedynie parametr encoding.
3. Każda klasa może mieć dowolne parametry "konfiguracyjne" (jak chociażby wspomniany encoding dla XMLa) właściwe tylko dla swojego typu zwracanych danych.
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 11:11