Saya telah tertarik pada pola desain untuk sementara waktu dan mulai membaca "Pola Desain Kepala Pertama". Saya mulai dengan pola pertama yang disebut pola 'Strategi'. Saya membahas masalah yang diuraikan dalam gambar di bawah ini dan pertama kali mencoba mengusulkan solusi sendiri sehingga saya benar-benar dapat memahami pentingnya pola.
Jadi pertanyaan saya adalah mengapa solusi saya untuk masalah di bawah ini tidak cukup baik. Apa poin baik / buruk dari solusi saya vs polanya? Apa yang membuat pola itu jelas satu-satunya solusi yang bisa dilakukan?
SOLUSI SAYA
Kelas Induk: 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/>");
}
}
}
?>
KELAS INHERIT: MallardDuck
<?php
class MallardDuck extends Duck
{
function MallardDuck()
{
$this->quackable = 1;
$this->swimmable = 1;
}
function display()
{
echo "A Mallard Duck Looks Like This<BR/>";
}
}
?>
KELAS Warisan: 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/>";
}
}