Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> podział zadań na między klasy...
rmn
post
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 19.02.2004
Skąd: Piaseczno

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


Robie zorientowana obiektowo galerie. Poszczegolne zdjecia sa reprezentowane przez obiekty klasy Foto.I teraz mam pytanie: Czy funkcje takie Register(zarejstruj w bazie), Show(wysiwetl sformatowane info o zdjeciu) powinny byc metodami klasy foto, czy metodami klasy Galeria przyjmujacymi jako argument obiekt klasy Foto?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
rzseattle
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Nik nie odpowie na to pytanie jednoznacznie. To kwestia indywidualnego podejscia programisty. Przy projektowaniu obiektowym nie raz spotkasz dzialania ktore pasuja do kilku obiektow jednoczesnie. Czasem jest to blad w projektowaniu struktury a czasem pierdola z ktora nie idzie sie uporac. Jesli chodzi o moje zdanie to mysle ze klasa foto powinna dziedziczyc po klasie galery bo przeciez logicznie rozumujac galeria jest rodzicem dla zdjecia. W ten sposob to co sie tyczy galeri bedzie dotyczylo kazdego zdjecia w niej zawartego.


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
Seth
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Ja bym do tego poszedl w ten spsob (na przykladzie dwoch klas):
Klasy:
- Picture - klasa zawierajaca dane o obrazku - reprezentujaca obrazek
Wlasciwosci wysokosc, szerokosc, sciezka do pliku itp.
Metody: get - do pobierania zdjecia, update - do ukatualnienia, delete - do usniecia zdjecia itp
- PictureList - lista obrazkow
Metody: pobieranie listy z danej kategorii ew wszyskich, sortowanie, updateowanie, usuwanie elementow, usuwanie wszytkich elementow itp.

Wyswietlanie danych nie powinno znajdowac sie w tych klasach. Powinny byc do tego inne klasy/funkcje, ktore beda odpowiedzialne za pobieranie elementow i na bazie zawartych w nich danych formatowaly output.

Mozna do tego podejsc tez w ten spsoob, ze klasy Picture, PictureList beda tylko miejscami przechowywania danych bez metod operujacych na danych przechowywanych w bazie - do tego sluzyly by inne klasy.
Go to the top of the page
+Quote Post
rmn
post
Post #4





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 19.02.2004
Skąd: Piaseczno

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


Seth:
Cytat
Mozna do tego podejsc tez w ten spsoob, ze klasy Picture, PictureList beda tylko miejscami przechowywania danych bez metod operujacych na danych przechowywanych w bazie - do tego sluzyly by inne klasy.


Ale wtedy klasy przestaną byc klasami? Stana się zwyklymi 'strukturami'?

Napisze wiecej jak będa tylko miał chwilę czasu. Dzięki za odpowiedzi. Postram się dzisiaj zaprojektować klasy według Wszych wskazówek i dalsza dyskusje będziemy prowadzili juz na nich(klasach). Myśle, że tak bedzie Nam łatwiej się zrozumiec:)

pozdrawiam.
Go to the top of the page
+Quote Post
Seth
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Cytat
Seth:
Cytat
Mozna do tego podejsc tez w ten spsoob, ze klasy Picture, PictureList beda tylko miejscami przechowywania danych bez metod operujacych na danych przechowywanych w bazie - do tego sluzyly by inne klasy.


Ale wtedy klasy przestaną byc klasami? Stana się zwyklymi 'strukturami'?

Nie koniecznie gdyz klasa taka zawierala by tylko metody odpowiedzialne za pobieranie danych bez mozliwosci zapisywania danych czy tez ich zmiany. Czyli cos w rodzaju DataSetu (chyba tak to sie nazywalo) - klas potrzebnych min dla widoku strony.

No ale zobaczymy jak to Ty wykombinujesz smile.gif
Go to the top of the page
+Quote Post
rmn
post
Post #6





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 19.02.2004
Skąd: Piaseczno

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


Więc mój pomysł jest taki:
class Engine
|-class Output //klasa zajmujaca sie 'wyswietlaniem' innych klas
|-class Galery//klasa modulu galerii
|---Register,Update,Delete,GetList (wszystkie pracuja na obiektach klasy -Foto)
|---class Foto//klasa ma konstruktor,który ja 'wypelnia' danymi

rzseattle
Nie rozumiem czemu klasa Foto ma dziedziczyć po klasie Galery. Przecież te obiekty zajmują sie czymś zupełnie innym. Instancje klasy foto, powinne być inicjowane przez klasę galery, ale przeiceż klasie foto niepotrebne sa takie metody jak Register czy Update. Ta klasa reprezentuje zdjecie (obrazek) więc nie powinna posidać możliwości rejestracji, tego zdjecia nie robia;)? Wlasnie rejestracja, i generalnie zarzadaniem zajmuje sie klasa galery?
Go to the top of the page
+Quote Post
lolek09
post
Post #7





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 30.05.2003
Skąd: Kraków

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


Dobra, jest siódma rano. Podobno o tej porze mózg najllepiej funkcjonuje (nie u każdego winksmiley.jpg). No w każdym razie doszedłem do wniosku, że walidacja użytkownika i przetwarzanie danych POST GET COOKIE itp. powinna mieć miejsce poza obiektem galeria, obiekt galeria w momencie tworzenia powinien znać użytkownika który z niej aktualnie korzysta i jego uprawnienia co do samej siebie powinna sama sprawdzać.
Miałbym więc następującą hierarchię:
Kod
+Root (wywoływanie odpowiednich klas na podstawie tego co zwróci Input)

+-Input (przetwarzanie POST, GET itp)

+-User (zarządza profilem, sprawdza użytkownika)

+-Gallery (Wszystko co się wiąże z galerią, administracja itp.)

+--Output (Wyświetlanie danych)

+--Album (Sortowanie zdjęć itp.)

+---Photo (Skalowanie, zmiany opisów itp.)


Jedyne czego nie jestem pewien, to umieszczenie klasy Output w galerii. Ale każdy dział będzie miał własną klasę z własnymi metodami od wyświetlania. To chyba słuszne?


--------------------
Chciałbyś zobaczyć program bez błędów? Wyobraź sobie UFO, w którym Elvis doi swojego jednorożca
Go to the top of the page
+Quote Post
Pianandrill
post
Post #8





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 21.04.2003

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


To ja jeszcze dorzucam pytanki.
Jeżeli mam klasę galeria (załóżmy, bo chodzi mi o cos jeszcze innego) ktora zajmuje sie wybieraniem z bd listy obrazków (załóżmy ze chodzi o podzial na stronki danej galerii), sortowaniem, zliczaniem, i innymi bardziej ogólnymi rzeczami... i
mamy klasę foto (obrazek) która zajmuje sie wyciąganiem z bd danych konkretnrgo obrazka i przedstawianiem ich na stronie, dodawaniem nowych zdjęć, edycją, usuwaniem... itp

Chodzi mi teraz o aspekt wydajnościowy.
klasa galeria odwołuje sie do bd pobierając id elementów na danej stronie (start, limit). Czy jest sens aby ta klasa wywoływała instancje klasy foto dla każdego zdjęcia/obrazka na stronie (powiedzmy w jakiejs tam pętli) a obiekt foto za kazdym razem odwoływał sie do bd z zapytaniem o dane konkretnego obrazka/zdjęcia?

Jak to zrobić sensownie... czym powinien sie zajmować obiekt typu lista (spis elementów) a czym obiekt element (konkretny element zbioru) ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 14:58