مورد بعدی دیزاین پترن
Factory هست.این دیزاین پترن در
PHP برای ایجاد شئ ها به صورت پویا و بر اساس نیازها و شرایط مختلف استفاده میشود. این الگو به شما اجازه میدهد که بدون نیاز به دستکاری کد اصلی، شئ های مختلف را ایجاد کنید.مثال:
interface Fruit {
public function color();
}
class Banana implements Fruit {
public function color() {
echo "yellow";
}
}
class Apple implements Fruit {
public function color() {
echo "red";
}
}
class FruitFactory {
public function createFruit($fruitName) {
if ($fruitName === 'banana') {
return new Banana();
} elseif ($fruitName === 'apple') {
return new Apple();
}
}
}
در مثال بالا، ابتدا یک اینترفیس Fruit تعریف شده است که توابعی مانند color را برای میوه ها تعریف میکند. سپس دو کلاس Banana و Apple ایجاد شدهاند که از رابط Fruit ارثبری میکنند و توابع color را پیادهسازی میکنند.در نهایت، کلاس
FruitFactory تعریف شده است که به عنوان یک فکتوری برای ایجاد شیءهای میوه عمل میکند. متد createFruit در این کلاس یک نوع میوه را به عنوان ورودی دریافت میکند و بر اساس نوع میوه مورد نظر، یک شئ مربوطه را ایجاد و برمیگرداند.برای استفاده از الگوی
Factory به روش زیر عمل می کنیم:$factory = new FruitFactory();Result:
$banana = $factory->createFruit('banana');
$banana->color();
yellow
$apple = $factory->createFruit('apple');
$apple->color();
Result:red
با استفاده از الگوی
Factory، ما میتوانیم به راحتی شئ های مختلف را ایجاد کنیم، بدون اینکه بخشهای دیگر برنامه را تغییر دهیم. این الگو به ما امکان میدهد به سادگی از تغییرات در ایجاد شئ ها برای موارد خاص استفاده کنیم..