Generation

generate functionFri, 07 Mar 2025

3. Amplía el ejemplo del pato añadiendo nuevas interfaces como Corredor y clases que combinen diferentes comportamientos.

Aquí te muestro un ejemplo de cómo podrías ampliar el patrón de diseño de "Pato" en PHP, agregando nuevas interfaces y clases que combinen diferentes comportamientos. **Interfaces** ```php // Interface Pato interface Pato { public function nadar(); public function volar(); } // Interface Corredor interface Corredor { public function correr(); } // Interface Nadador interface Nadador { public function nadar(); } // Interface Volador interface Volador { public function volar(); } ``` **Clases** ```php // Clase PatoNormal class PatoNormal implements Pato, Corredor { public function nadar() { echo "El pato está nadando.\n"; } public function volar() { echo "El pato está volando.\n"; } public function correr() { echo "El pato está corriendo.\n"; } } // Clase PatoRápido class PatoRápido implements Pato, Corredor, Nadador { public function nadar() { echo "El pato rápido está nadando muy rápido.\n"; } public function volar() { echo "El pato rápido está volando muy alto.\n"; } public function correr() { echo "El pato rápido está corriendo muy rápido.\n"; } } // Clase PatoVolador class PatoVolador implements Pato, Volador { public function nadar() { echo "El pato volador está nadando.\n"; } public function volar() { echo "El pato volador está volando muy alto.\n"; } public function correr() { echo "El pato volador no puede correr.\n"; } } // Clase PatoNadador class PatoNadador implements Pato, Nadador { public function nadar() { echo "El pato nadador está nadando muy rápido.\n"; } public function volar() { echo "El pato nadador no puede volar.\n"; } public function correr() { echo "El pato nadador no puede correr.\n"; } } ``` **Ejemplo de uso** ```php $patoNormal = new PatoNormal(); $patoRápido = new PatoRápido(); $patoVolador = new PatoVolador(); $patoNadador = new PatoNadador(); $patoNormal->nadar(); $patoNormal->volar(); $patoNormal->correr(); $patoRápido->nadar(); $patoRápido->volar(); $patoRápido->correr(); $patoVolador->nadar(); $patoVolador->volar(); $patoVolador->correr(); $patoNadador->nadar(); $patoNadador->volar(); $patoNadador->correr(); ``` En este ejemplo, hemos agregado nuevas interfaces `Corredor`, `Nadador` y `Volador`, y hemos creado clases que implementan estas interfaces. Cada clase tiene un comportamiento específico, y podemos crear objetos de cada clase para demostrar cómo se comportan.

Want to kickstart your project?Use the new AI Studio to create your code