![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Zaczynam pisać grę karcianą przez przeglądarkę (coś jak yu-gi-oh). Dotąd raczej omijałem klasy, poza obsługą bazy danych. No ale nie tworząc klas, robi się większy bałagan w funkcjach :-) I pomyślałem, aby utworzyć klasę obsługującą pojedynki użytkowników - byłyby w niej funkcje odpowiadające za start pojedynku (dodanie do bazy danych odpowiedniego rekordu), dodawania wydarzeń pojedynku itp. No i ta klasa aby działać, potrzebuje połączenia z bazą danych. Mam 'na zewnątrz' obiekt do obsługi bazy danych - wykonuje na nim wszelkie operacje z mysql, typu getOne, getRow, getAll, insertId itp. Tylko teraz jak ten obiekt wrzucić w tą klasę do pojedynków?
I takie pytanie co do samej klasy - warto taką stworzyć, czy może lepiej pozostać przy samych funkcjach? Co mogę zyskać tworząc klasę? No bo teraz, aby dodać wydarzenie pojedynku, odpalam funkcję addDuelEvent z parametrami: numer stołu, wydarzenie, numer użytkownika (1/2), numer wydarzenia, dodatkowe dane. Przy klasie musiałbym dodatkowo przed tym utworzyć klasę $duel=new Duel(), a potem odwołać się do $duel->addDuelEvent(numer stołu,....). Widzicie jakieś korzyści, jakie mogę uzyskać stosując tu klasę zamiast samych funkcji? :-) Jakoś klasa wydaje mi się bardziej uporządkowana, ale dotąd za bardzo się w nie nie zagłębiałem. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
a daj w klasie np:
i przy wywołaniu klasy daj $klasa=new klasa($uchwyt_db); teraz w klasie przez $this->db->nazwa_funkcji(); wywołujesz funkcjie z klasy mysqla (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Działa, dzięki! :-)
A teraz od strony praktycznej - przyda się stworzenie takiej klasy? Ja przyzwyczaiłem się do programowania strukturalnego, jakoś mi to nie przeszkadzało, ale coś czuje że można z klas wyciągnąć jakieś korzyści :-) Plusem jest to, że klasa skleiłaby w kupe wszystkie funkcje odnośnie pojedynku. Coś jeszcze można uzyskać stosując klasę? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 29 Dołączył: 6.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dla mnie jest o wiele wygodniej. Zawsze wiem gdzie co jest. A przykładowo musisz pojedynek umieścić w kilku miejscach. To nie musisz za każdym razem powtarzać kodu tylko wystarczy jedna linijka.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
No, spodobały mi się te klasy :-) Utworzyłem sobie funkcję, po której wywołaniu w obiekcie zapisuje mi ona w zmiennej $table informacje o stole o podanym numerze. Następnie odwołując się np. do funkcji dodającej wydarzenie, nie muszę już podawać numeru stołu, bo informacje o stole już są zapisane :-) Dzięki za informacje! (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Ten post edytował Apocalyptiq 6.03.2009, 19:08:04 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 12 Dołączył: 28.06.2007 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
strukturalnie to teraz mozesz pisac proste skrypciki, jesli chodzi o wieksze aplikacje to tylko obiektowka wchodzi w gre. Idziesz do pracy - OOP jest wymogiem.
Co do twojej klasy to lepiej adaptowac niz dziedziczyc, do tego mozesz wymusic typ obiektu - masz wtedy podpowiadanie metod np w eclipse. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 23:19 |