Tôi đã quan tâm đến các mẫu thiết kế trong một thời gian và bắt đầu đọc "Các mẫu thiết kế đầu tiên". Tôi bắt đầu với mẫu đầu tiên được gọi là mẫu 'Chiến lược'. Tôi đã trải qua vấn đề được nêu trong các hình ảnh dưới đây và lần đầu tiên cố gắng tự đề xuất một giải pháp để tôi thực sự có thể nắm bắt được tầm quan trọng của mẫu.
Vì vậy, câu hỏi của tôi là tại sao giải pháp của tôi cho vấn đề dưới đây không đủ tốt. Điểm tốt / xấu của giải pháp của tôi so với mô hình là gì? Điều gì làm cho mô hình rõ ràng là giải pháp khả thi duy nhất?
GIẢI PHÁP CỦA TÔI
Lớp phụ huynh: Ducks
<?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/>");
}
}
}
?>
LỚP INHERITING: MallardDuck
<?php
class MallardDuck extends Duck
{
function MallardDuck()
{
$this->quackable = 1;
$this->swimmable = 1;
}
function display()
{
echo "A Mallard Duck Looks Like This<BR/>";
}
}
?>
LỚP INHERITING: 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/>";
}
}