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
scanner
post
Post #2





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Użytkownik dziedziczy po artykułach?
E... Wątpię.

Zamiast tego, lepiej w okreslonej metodzie np. Articles->Add() sprawdizć poziom dostepu. Ot, choćby:
  1. <?php
  2. class Articles
  3. {
  4. // ...
  5. function Add()
  6. {
  7. if( !$User->CheckLvl( 'admin' ) )
  8. {
  9. die( 'Nie masz uprawnien' );
  10. }
  11. }
  12. // ...
  13. }
  14. ?>
Ocaywiście obiekt User przechowuje w swoich właściwościach daną:
  1. <?php
  2. $User->accessLevel = '';
  3. ?>
Która przytbiera wartość pobraną z bazy.

Tworzenie dwu obiektów "admnin", "user" jest nielogioczne. Przeciez to ten sam obiekt. tylko że jedna z jego właściowści ma różna wartość.
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: 13.10.2025 - 17:19