Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klasy (kolejny raz), dziedziczenie czy inaczej
Thaal
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 1.06.2003

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


Witam!!

Pisze sobie własnie taki mały system do obsługi artykułów. Do systemu maja dostęp dwie kategorie użytkowników: user i admin.
Do obsługi artykułów jest stworzona klasa 'articles', w ktorej mam takie metody jak:
- wyświetl liste
- wyswietl artykul
- dodaj artykuł
- zablokuj artykuł
I teraz pytanie:
Czy dziedziczenie (klsay 'admin' i 'user' dziedziczą z klasy 'articles') jest dobrym rozwiązaniem?? Bo w takim przypadku obiekt 'user' ma dostęp do metod, które nie są mu przeznaczone (i w rzeczywistości niewiele się różni od obiektu klasy 'admin', a w takim przypadku nie ma sensu tworzyc osobnej klasy 'user'). I żeby to obejść nalezy jeszcze raz zdefiniować metody 'dodaj artykuł' i 'zablokuj artykuł' w klasie user.
Drugie co mi do głowy przyszło to przekazanie utworzonego obiektu 'articles' do obiektów klas 'user' i 'admin'', a tam będą metody odpowiedzialne za wyświetlanie/edycje artykulów w zalezności od potrzeb (beda wywoływały metody obiektu 'articles').

Czy ktoś lepiej znający ode mnie temat mógłby jakos ustosunkować się do powyższego?? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

W drugim rozwiązaniu mozna jeszcze wyprowadzic klasę 'admin' z klasy 'user' - ale nad tym się jeszcze zastanowię (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)


P.S. jakby były problemy ze zrozumieniem tego co napisałem to przepraszam (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Thaal
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 1.06.2003

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


Cytat
User wywołuję metode dodaj obiektu Artykuł.
Sam takej jmetody nie posiada, bo człowiek nie ma mołziwosci wysunięcia papieru z siebie, tylko z drukarki... Czyli to drukarka ma metodę "wysuń" i Zenek jej nie dziedziczy - Zenek ją używa. A drukarka sprawdza, czy zenek może jej użyć.

nic dodać nic ująć (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

natomiast mam pytanie do:
Cytat
Po co admin dziedziszy po uiser?
Ludzie...
ratunku!!!!


więc:

user ma metody:
wyświetl listę (user zenek używa drukarki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )
wyświetl artykuł

admin, oprócz powyzszych posiada także:
dodaj artykuł
usuń artykuł

wobec czego kod może wygladać tak:
  1. <?php
  2.  
  3. //klasa user
  4. class user
  5. {
  6. function wyświetl listę()
  7. {
  8. //wyświetla listę artykułów
  9. }
  10.  
  11. function wyświetl artykuł()
  12. {
  13. //wyświetla artykuł
  14. {
  15. }
  16.  
  17. //klasa admin
  18. class admin extends user
  19. {
  20. function dodaj artykuł()
  21. {
  22. //dodaje artykuł
  23. }
  24.  
  25. function usuń artykuł()
  26. {
  27. //usuwa artykuł
  28. }
  29. }
  30.  
  31. ?>


i teraz dwa pytania:
1) czy powyższy kod jest zły??
2) co dokładnie oznacza okreslenie 'dziedziczy po' - bo być może ja źle je pojmuję
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 23:05