Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tworzenie klas
Forum PHP.pl > Forum > PHP
MalyKazio
Witam,

Wygrzebałem stary kod strony pisany strukturalnie, ciurkiem jak kto woli. Nie jestem orłem w programowaniu obiektowym, ale czas się nauczyć smile.gif
Mam różne funkcje pobierające dane z bazy i wyświetlające na stronie. Np. pobierzKsiazke(id), która pobiera dane książki z bazy. Do tego są funkcje edytujące dane książki, kasujące książkę, pobierające i wyświetlające listy książek itp.
Jak to teraz ugryźć z obiektowego punktu widzenia?
Jak powinna mniej więcej wyglądać poprawna klasa i co w niej umieścić? Czy zrobić klasę Ksiazka zawierającą metody pobierzDane, edytujDane, usunKsiazke, czy jakoś inaczej? Co zrobić z listą książek, która pobiera dane wielu książek i je wyświetla? Czy dodać do do klasy Ksiazka, czy zrobić nową klasę np. ListaKsiazek?
Nie chodzi mi o gotowy kod, tylko o sposób myślenia, jak najlepiej to zorganizować.
Crozin
Na początek: http://pl.wikipedia.org/wiki/Zasada_jednej_odpowiedzialności

1. Obiekt klasy Książka reprezentuje książkę i tyle.
2. Obiekt klasy ListaKsiążek reprezentuje kolekcję obiektów typu Książka (prawdopodobnie wystarczy Ci jedna klasa na wszystkie kolekcje (książek, samochodów, butów itp.).
3. Obiekt klasy MenadżerKsiążek który pozwala zapisać, usunąć czy zaktualizować konkretną książkę.
4. Jeszcze jakiś obiekt (czy nawet zestaw obiektów) pozwalających pobierać (tutaj z bazy danych) książki.

Hint: Google i Data Mapper pattern, Doctrine2.
zend
Zrób klasę podstawową do operacji na bazie danych, insert(), delete(), update(), fetch() do których dane będziesz przekazywał w postaci tablicy, przy tworzeniu "książki" przekazujesz instancję połączenia do konstruktora, metody nazywasz jak chcesz. Kolekcje możesz sobie na początku darować mellow.gif Proponuję też angielską nomentkaturę. To tak w duużym skrócie happy.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.