しばらくデザインパターンに興味があり、「Head First Design Patterns」を読み始めました。最初は「戦略」パターンと呼ばれるパターンから始めました。下の画像で概説されている問題を調べ、最初に自分で解決策を提案しようとしたので、パターンの重要性を本当に理解できました。
だから私の質問は、以下の問題に対する私の解決策がなぜ十分ではないということです。パターンに対するソリューションの良い点と悪い点は何ですか?パターンが明らかに唯一の実行可能なソリューションになるのはなぜですか?
私の解決策
親クラス:DUCK
<?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/>");
}
}
}
?>
継承クラス:マガモ
<?php
class MallardDuck extends Duck
{
function MallardDuck()
{
$this->quackable = 1;
$this->swimmable = 1;
}
function display()
{
echo "A Mallard Duck Looks Like This<BR/>";
}
}
?>
継承クラス: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/>";
}
}