Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klasy i dziedziczenie
yeti
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 12.09.2003

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


Witam, mam kłopot myślowy co do zagospodarowywania zasobów podczas tworzenia obiektów.

Wprowadzenie:
mamy serwis, w którym wykorzystywane są:
- 3 klasy podstawowe (połączenie z DB, obsługa zapytań, klasa serwisowa). Klasy te dzidziczą od siebie w podanej kolejności
- 1 klasa do obsługi prezentacji
- 2 klasy specjalizowane (obsługjące konkretne działy serwisu, np. newsy i forum)

Pytanie:
Czy sensowne jest rozwiązanie, w którym robimy dwie ścieżki dziedziczenia: od klasy News poprzez Prezentację i klasy podstawowe i od klasy Forum poprzez Prezentację i klasy podstawowe? Klasy News i Forum używane są rownocześnie tylko 2 razy, ale spowoduje to niepotrzebne dwukrotne wywołanie klasy Prezentacji i klas podstawowych.

Czy może jest sensowniejsze rozwiązanie?
Dodam, że funkcjonalność klas News i Forum zasadza się na użyciu metod z klas podstawowych.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bregovic
post
Post #2





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Cytat(M4chu @ 2004-09-22 18:12:45)
  1. <?php
  2.  
  3. class News
  4. {
  5. function __construct($db)
  6. {
  7. $this->db = $db;
  8. }
  9. }
  10. class Forum
  11. {
  12. function __construct($db)
  13. {
  14. $this->db = $db;
  15. }
  16. }
  17. $db = new Db;
  18. $news = new News($db);
  19. $forum = new Forum($db);
  20. ?>

zamiast przesylac referencje i zapisywac obiekt db w atrybucie (co zdaje sie zajmuje duzo pamieci) mozesz po prostu napisac w kazdej metodzie
  1. <?php
  2. classs Foo
  3. {
  4. public function OhSoFoo()
  5. {
  6. global $db;
  7. }
  8. }
  9. ?>
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: 27.12.2025 - 08:45