![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Chciałbym trochę rozwinąć myśl NoiseMC. Bo Twoje podejście mnie lekko zaintrygowało.
Rozumiem że wynika ono z modelu MVC ? Mam pytanie odnośnie tego co napisłeś. Jak skorelowac ze sobą konkretny obiekt Model i nie-Model ? Chodzi mi o to, że jeżeli utworzę dwie klasy to bede mial 2 obiekty. Jezeli Data Object ma przechowywać tylko dane, to rozumiem, że nie powinien on mieć wogóle metod manipulującymi danymi ? Nawet gettery ? Załużmy taką sytuację. pobieram z bazy Artykul. Chcialbym zmienic mu opis i zrobic update danych na bazie. Czy dobrze rozumiem, ze klasa Data Access Objects zajmuje sie pobieraniem danych i zwracaniem obiektu a po poprawieniu przekazuje obiekt to Data Access Objects i go zapisuje ? Chyba ze umiescic go w klasie model na stale. No nie wiem. Np. Mam taką klase
i teraz wykorzystanie
W ten sposób wyciągam dane konkretnego artykułu (po jego ID). I co o tym myslicie ? Czy to jest prawidłowo ? Czy moglbym stworzyc np. klasę Articles_Model, ktora zawieralalby metody zwracajace: 1. obiekt ArtykulInfo (class ArticleInfo) 2. obiekt Artykul (class Article) 3. lista info artykulow danej kategorii -> tablica obiektow class ArticleInfo Ten post edytował become 30.11.2007, 12:44:08 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Data Access Object - zwraca i zapisuje obiekty. Może (chociaż nie musi) nadzorować zarządzanie transakcjami bazodanowymi.
Model w rozumieniu MVC to dane, chociaż wraz z przejściem do PHP pojęcie to zostało wypaczone. Teraz wszystko co zwraca tablice i odwołuje się do bazy to model. Nie panowie - model w podejściu obiektowym to z pewnością nie jest tablica. Zamiast modelu powinien występować duet Domain Object (zachęcam do przeczytania mojej noty na ten temat) oraz DAO. Teraz jak to wygląda - obiekty mają wewnątrz powiązania a DAO jest fasadą dostępu do obiektów - innymi słowy DAO zwraca już obiekty danego typu. Nas, z perspektywy użytkowników interfejsu to w ogóle nie interesuje - po prostu dajemy ID dostajemy obiekt. Pod spodem może być XML, baza danych, plik tekstowy, wszystko, z czego da się wyłuskać dane. Zyskujemy w ten sposób jednolitą definicję obiektów biznesowych w pełni niezależną od źródła danych. "Obiekty" mogą współpracować niezależnie od miejsca pochodzenia - nic nie stoi na przeszkodzie by odczytanego z XML autora wrzucić do książki, którą mamy w bazie, ponieważ DAO bazując na definicji obiektów bez problemu to wszystko zapisze. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Poniżej przedstawiam przykład napisany "na szybko".
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 23:24 |