Factory Method vs Abstract Factory

Założenie: Zrozumieć różnicę między wzorcami projektowymi Factory Method i Abstract Factory w PHP i kiedy stosować każdy z nich.

Krok po kroku:

  1. Factory Method: Stwórzmy prosty przykład fabryki produkującej samochody. Każdy podtyp samochodu (np. sedan, SUV) będzie miał swoją własną fabrykę.
  2. 
    createCar();
    echo "Typ samochodu: " . $sedan->getCarType() . "\n"; // Wyświetli: Typ samochodu: Sedan
    
    $suvFactory = new SUVFactory();
    $suv = $suvFactory->createCar();
    echo "Typ samochodu: " . $suv->getCarType() . "\n"; // Wyświetli: Typ samochodu: SUV
    ?>
    				

    Ten kod demonstruje Factory Method. Każda fabryka tworzy konkretny typ samochodu.

  3. Abstract Factory: Teraz rozszerzmy przykład o dodanie różnych marek samochodów. Każda marka będzie miała swoją fabrykę produkującą różne typy samochodów.
  4. 
    createSedan();
    echo "Marka i typ: " . get_class($toyotaSedan) . "\n";
    
    $bmwFactory = new BMWFactory();
    $bmwSUV = $bmwFactory->createSUV();
    echo "Marka i typ: " . get_class($bmwSUV) . "\n";
    ?>
    				

    Abstract Factory pozwala na tworzenie rodzin powiązanych obiektów bez określania ich konkretnych klas.

Podsumowanie: Ten przykład pokazuje podstawowe różnice między wzorcami Factory Method i Abstract Factory. Factory Method jest prostszy i nadaje się do tworzenia pojedynczych obiektów, podczas gdy Abstract Factory jest bardziej złożony, ale pozwala na tworzenie rodzin obiektów.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *