Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Class Libro
Class Libro
Private $autor;
Private $titulo;
Public function_construct($titulo,
$autor){
$this->autor = $autor;
$this->titulo = $titulo;
}
Public function getautor(){
Return $this->autor;
}
Public function getTitulo(){
Return $this->titulo;
}
}
Class LibroDecorator{
protected $libro;
protected $titulo;
protected $autor;
public function_construct(Libro
$libro){
$this->libro = $libro;
$this->resetLibro= $libro();
}
Public function getTitulo(){
Return $this->;
}
Public function getAutor(){
Return $this->autor;
}
Public function_toString(){
Return $this->Titulo().’--‘.$this-
>getAutor();
Class LibroDecoratorExclamacion
extends LibroDecorator{
Private $libroDecorado;
Public
function_construct(LibroDecorator
$libroDecorator){
$this->libroDecora= $libroDecorado;
}
Public function
decoraTituloExclamacion(){
$this->libroDecorado->titulo=”!”.
$this->libroDecorado->.”!”;
}
}
Class libroDecoratorEstrella extends
LibroDecorator{
Private $libroDecorado;
Public function
decoraTituloEstrella(){
$this->libroDecorado->titulo=
Str_replace(“”,”*”,$this-
>libroDecorado->titulo);
}
}
$librotolkien= new Libro(“El
hobbit”,”J.R.R. Tolkien”)
$libroTolkienDecorado= new
LibroDecorator($libroTolkien);
$libroTolkienDecoradoExclamacion=
new
libroDecoratorExclamacion($libroTolk
ienDecorado);
$libroTolkienDecoradoEstrella = new
libroDecoratorEstrella($libroTolkien
Decorado);
echo “libro original:<br>”;
echo
$libroTolkienDecorado.”<br>>br>”;
echo”libro con Exclamaciones:<br>”;
$libroTolkienDecoradoExclamacion-
>decoraTituloExclamacion();
$libroTolkienDecoradoExclamacion-
>decoraTituloExclamacion();
Echo
$libroTolkienDecorado.”<br><br>”;
Echo “libro con estrella:<br>”;
$libroTolkienDecoradoEstrella-
>decoraTituloEstrella();
Echo
$libroTolkienDecorado.”<br><br>”;