Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 14.08.2010 Ostrzeżenie: (0%)
|
Witam, wiem że w tym dziale jest już świeży temat o stosowaniu OOP, jednak chciałbym aby ktoś zweryfikował mój kod czy to co robię jest zgodne z założeniem OOP.
Jest to przykładowy game framework, dla treningu. Mam w nim 4 klasy User, UserManager, Character, CharacterManager, oto one :
Index.php
Pytania: 1. Głowne - czy ten kod jest zgodny z OOP ? 2. Czy metoda Logon() powinna być w klasie UserManager czy w osobnej np. Login 3. Czy tworzenie obiektu User a potem przekazywanie go do UserManager w celu obróbki itp jest prawidłowe ? Czy w klasie UserManager powinna być metoda tworząca obiekt User ? (to tyczy się również klas Character i CharacterManager) Proszę o wytknięcie mi błedów i sposobów w jaki mogę je poprawić (IMG:style_emoticons/default/wink.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 14.08.2010 Ostrzeżenie: (0%)
|
Cytat Im mniejsze czyli bardziej rozdrobnione obiekty tym lepszy system. Z drugiej strony jeżeli ma to być prosty system to nie ma sensu sztucznie go komplikować, tak że możesz rejestracje i logowanie zrobić w jednym obiekcie, tylko niech to nie będzie ten sam obiekt który reprezentuje użytkownika. Może 'UserAuthorisation'? Brakowało mi zamiennika nazwy (IMG:style_emoticons/default/tongue.gif) Dzięki, po raz kolejny. Cytat Jeżeli chodzi o sam obiekt Character. Nawrzucałeś do niego różnych zmiennych które ci przyszły do głowy a które nie mają jakiegokolwiek uzasadnienia. Obiekt Character to nie jest prawdziwy obiekt w rozumieniu OOP. Od tablicy różni go tylko forma zapisu. W którymś tematcie o OOP było napisane, że całkiem rozsądne jest robienie takich kontenerów-obiektów zawierających dane. Są tam zmienne, settery i gettery. Czy jednak to jest zło i należy to zmienić ? Cytat Przykładowo $_speed. Czym jest speed? Prędkość z którą porusza się byt w danym momencie czy maksymalna prędkość z którą może się poruszać? Prędkość to jest coś względnego. Względem czego liczysz prędkość? Jeżeli nie masz tego czegoś to może i sama speed powinna na razie zniknąć? Może prędkość nie powinna być zmienną tylko wynikać z relacji obiektów, tak jak w świecie rzeczywistym? Prawdę mówiąc w kontekście tego co chcę zrobić, nie potrzebuję takich "szerszych horyzontów" bo $_speed ma po prostu być zwykłą statystyką, na której podstawie będzie można wyliczyć np. szanse na unik/trafienie. To znowu ja (IMG:style_emoticons/default/biggrin.gif) Zmiany: Dodałem klasę UserAuthorisation dzięki której po przekezaniu obiektu User można się zalogować.
Dodałem klase Database do obsługi bazy danych, za wiele w niej nie ma (IMG:style_emoticons/default/smile.gif)
Zmiany w klasie UserManager, dodałem funkcję tworzącą użytkownika, wywalilem z niej funkcje logującą i dodałem wykorzystanie klasy Database.
W index.php dorzuciłem tworzenie usera.
Jest dobrze ? Ten post edytował Fanatyko 29.08.2011, 21:48:05 |
|
|
|
Fanatyko OOP czy dobrze go stosuję ? 27.08.2011, 20:16:00
smentek Cytat1. Głowne - czy ten kod jest zgodny z OOP ?
... 27.08.2011, 21:23:05
Fanatyko No właśnie też złapałem się na tym, że rzucam nazw... 28.08.2011, 06:10:21
rahul mysle ze mozesz sobie poczytac moj post, zadawalem... 28.08.2011, 09:32:09
elektrrrus Prawdopodobnie całkiem przez przypadek, ale zrobił... 28.08.2011, 09:46:31
Spawnm Za łączenie z pdo powinna odpowiadać klasa db a ni... 28.08.2011, 09:51:15
smentek CytatPrawdę mówiąc nie wiem czy złapałem o co chod... 28.08.2011, 10:01:51
Fanatyko Cytatmysle ze mozesz sobie poczytac moj post, zada... 28.08.2011, 11:47:00
melkorm jeżeli masz dane w tablicy o takich samych nazwach... 28.08.2011, 12:04:58
smentek CytatZakładając, że chcę napisać klasę do logowani... 28.08.2011, 12:42:34
Fantazyn Dla mnie kod wygląda całkiem znośnie, ale:
1. Unik... 29.08.2011, 20:12:22
banditpanda class Database {
function __construct() ... 29.08.2011, 20:16:28
Fanatyko @Fantazyn
dzięki za odpowiedź, naprawdę mi się pr... 29.08.2011, 21:52:58
smentek Cytat"W którymś tematcie o OOP było napisane,... 30.08.2011, 20:30:25
Fanatyko CytatI to jest złe stosowanie get i set. Jezeli wp... 30.08.2011, 21:11:51
daren88 Główny problem tej klasy na co już niektórzy zwróc... 3.09.2011, 21:20:21
CuteOne Mi nie podoba się jedna rzecz... zrobiłeś z klasy ... 4.09.2011, 12:22:55 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 12:17 |