Ejercicio: Ejercicio 1

Realiza un ejemplo de uso del patrón Adapter en PHP para adaptar una clase Lavadora a una interfaz Televisor con los métodos encender() y apagar().

Solución:

// Interfaz esperada por el cliente
interface Televisor {
  public function encender();
  public function apagar();
}

// Clase a adaptar
class Lavadora {
  public function lavar() {
    echo "Lavando...";
  }

  public function detener() {
    echo "Deteniendo lavado...";
  }
}

// Clase adaptador
class LavadoraAdapter implements Televisor {

  protected $lavadora;

  public function __construct(Lavadora $lavadora) {
    $this->lavadora = $lavadora;
  }

  public function encender() {
    $this->lavadora->lavar();
  }

  public function apagar() {
    $this->lavadora->detener();
  }
}

// Cliente
$lavadora = new Lavadora();
$lavadoraAdaptada = new LavadoraAdapter($lavadora);

$lavadoraAdaptada->encender(); // Lavando...
$lavadoraAdaptada->apagar(); // Deteniendo lavado...

Nosotros utilizamos cookies

Este sitio utiliza cookies para mejorar su experiencia de usuario.

Puedes aceptar todas las cookies pulsando en el botón de "Aceptar todas", rechazar todas las cookies pulsando el botón de "Rechazar cookies" o configurar manualmente usando el botón de "más opciones"

Para más información visita nuestra Política de cookies

Personaliza las Cookies

Estas cookies son necesarias para que el sitio web funcione y no se pueden desactivar en nuestros sistemas. Usualmente están configuradas para responder a acciones hechas por tí para recibir servicios, tales como ajustar tus preferencias de privacidad, iniciar sesión en el sitio, o llenar formularios. Puedes configurar tu navegador para bloquear o alertar la presencia de estas cookies, pero algunas partes del sitio web no funcionarán. Estas cookies no guardan ninguna información personal identificable.

Estas cookies nos permiten contar las visitas y fuentes de circulación para poder medir y mejorar el desempeño de nuestro sitio. Nos ayudan a saber qué páginas son las más o menos populares, y ver cuántas personas visitan el sitio. Toda la información que recogen estas cookies es agregada y, por lo tanto, anónima.