Wzorce projektowe – Factory
Założenie: Zrozumieć i zaimplementować wzorzec projektowy Factory w PHP, aby dynamicznie tworzyć obiekty różnych klas.
Krok po kroku:
- Stworzenie interfejsu: Definiujemy interfejs
Product
, który będą implementowały nasze produkty. - Implementacja konkretnych produktów: Tworzymy klasy
ConcreteProductA
iConcreteProductB
implementujące interfejsProduct
. - Stworzenie fabryki: Tworzymy klasę
Factory
z metodącreateProduct
, która zwraca obiekt odpowiedniej klasy w zależności od parametru. - Użycie fabryki: Tworzymy instancję fabryki i używamy jej do tworzenia obiektów.
interface Product {
public function getName(): string;
}
class ConcreteProductA implements Product {
public function getName(): string {
return "Produkt A";
}
}
class ConcreteProductB implements Product {
public function getName(): string {
return "Produkt B";
}
}
class Factory {
public function createProduct(string $type): Product {
if ($type === "A") {
return new ConcreteProductA();
} elseif ($type === "B") {
return new ConcreteProductB();
} else {
throw new InvalidArgumentException("Nieznany typ produktu");
}
}
}
$factory = new Factory();
$productA = $factory->createProduct("A");
$productB = $factory->createProduct("B");
echo $productA->getName() . "\n"; // Wyświetli: Produkt A
echo $productB->getName() . "\n"; // Wyświetli: Produkt B
Ten przykład pokazuje podstawowe zastosowanie wzorca Factory. Zachęcamy do dalszego zgłębiania tematu wzorców projektowych w PHP!