chciałem się Was zapytać, czy moje rozumienie dekoratorów jest poprawne. Czytałem o nich na java.com onjava.com i w książce thinking in patterns (http://www.bruceeckel.com/) i na podstawie TIP zrobiłem taki, działający w php zestaw klas
<?php class Dekorator { protected $komponent; public function __construct( $komponent = false ) { $this->komponent = $komponent; } public function wezOpis() { if( $this->komponent != false ) { return $this->komponent->wezOpis() . $this->opis; } else { return $this->opis; } } public function wezCene() { if( $this->komponent != false ) { return $this->komponent->wezCene() + $this->cena; } else { return $this->cena; } } } class KawaEkspresowa extends Dekorator { protected $opis = 'To jest kawa ekspresowa.'; protected $cena = 5; } class Mleko extends Dekorator { protected $opis = 'To jest mleko do kawy.'; protected $cena = 2; } class Cukier extends Dekorator { protected $opis = 'To jest cukier.'; protected $cena = 1; } $a = new KawaEkspresowa( new Mleko( new Cukier() ) ); ?>
Kod
To jest cukier.To jest mleko do kawy.To jest kawa ekspresowa.
8
No i teraz pytanie zasadnicze: czy to jest właśnie dekorator?8
Dla używających dekoratorów - gdzie je stosowaliście?