Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][OOP] Kompozycja [rozwiazane]
dawid_c
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.01.2010

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


Witam,

Jestem raczej początkujący jeśli chodzi o OOP i właśnie buduję swój pierwszy projekt z wykorzystaniem obiektów.
Mam takie pytanie. Jak zastosować kompozycję (związek typu 'ma') w PHP?

Pozdrawiam,
Dawid C

Ten post edytował dawid_c 22.01.2010, 16:19:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




  1. class A {
  2. ...
  3. }
  4.  
  5. class B {
  6. ...
  7. }
  8.  
  9. class C {
  10. private $a;
  11. private $b;
  12.  
  13. public function __construct(A $a, B $b) {
  14. $this->a = $a;
  15. $this->b = $b;
  16.  
  17. ...
  18. }
  19.  
  20.  
  21. $a = new A();
  22. $b = new B();
  23.  
  24. $c = new C($a,$b);
  25.  
  26.  


O to chodziło?
Go to the top of the page
+Quote Post
dawid_c
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.01.2010

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


Chyba nie...

Kompozycja to związku typu: "samochód ma silnik", "komputer ma procesor".
Chyba, że je coś źle rozumiem...
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(dawid_c @ 22.01.2010, 15:28:13 ) *
"samochód ma silnik", "komputer ma procesor".

No i tak dokładnie jest w przykładzie ~blooregard'a. W nim obiekt klasy C (przykładowo samochód) posiada obiekt klasy A (np. silnik) oraz obiekt klasy B (np. kierownicę).
Go to the top of the page
+Quote Post
dawid_c
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.01.2010

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


Dzięki za rozjaśnienie.

Zwątpiłem, ponieważ założyłem, że kompozycję będzie budować się analogicznie jak dziedziczenie (słowo kluczowe extends).

Jadnak jak zwykle - najprostsze rozwiązanie nigdy nie chce przyjść jak jest potrzebne (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
blooregard
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
Zwątpiłem, ponieważ założyłem, że kompozycję będzie budować się analogicznie jak dziedziczenie (słowo kluczowe extends).

No nie, bo dziedziczenie to relacja A jest rodzajem B, czyli, nawiązując do przykładu z samochodami:

klasa A6 jest rodzajem klasy Audi, która jest rodzajem klasy Samochód - dziedziczenie
klasa A6 zawiera klasę 'Quattro' oraz zawiera klasę '4.2 V8 FSI' oraz zawiera klasę 'S-Line' - kompozycja

(IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

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: 20.12.2025 - 15:41