He estado interesado en los patrones de diseño por un tiempo y comencé a leer "Head First Design Patterns". Comencé con el primer patrón llamado patrón de 'Estrategia'. Revisé el problema descrito en las imágenes a continuación y primero traté de proponer una solución para poder comprender realmente la importancia del patrón.
Entonces mi pregunta es por qué mi solución al siguiente problema no es lo suficientemente buena. ¿Cuáles son los puntos buenos / malos de mi solución frente al patrón? ¿Qué hace que el patrón sea claramente la única solución viable?
MI SOLUCIÓN
Clase para padres: PATO
<?php
class Duck
{
public $swimmable;
public $quackable;
public $flyable;
function display()
{
echo "A Duck Looks Like This<BR/>";
}
function quack()
{
if($this->quackable==1)
{
echo("Quack<BR/>");
}
}
function swim()
{
if($this->swimmable==1)
{
echo("Swim<BR/>");
}
}
function fly()
{
if($this->flyable==1)
{
echo("Fly<BR/>");
}
}
}
?>
CLASE DE HERENCIA: MallardDuck
<?php
class MallardDuck extends Duck
{
function MallardDuck()
{
$this->quackable = 1;
$this->swimmable = 1;
}
function display()
{
echo "A Mallard Duck Looks Like This<BR/>";
}
}
?>
CLASE DE HERENCIA: WoddenDecoyDuck
<?php
class WoddenDecoyDuck extends Duck
{
function woddendecoyduck()
{
$this->quackable = 0;
$this->swimmable = 0;
}
function display()
{
echo "A Wooden Decoy Duck Looks Like This<BR/>";
}
}