Implementacja Factory

Założenie: Zrozumieć i zaimplementować prosty przykład wzorca projektowego Factory w PHP, aby tworzyć obiekty w sposób elastyczny i niezależny od konkretnych klas.

Krok po kroku:

  1. Tworzenie interfejsu: Zdefiniujmy interfejs Product, który będą implementowały nasze konkretne produkty.
  2. 
    interface Product {
      public function getName(): string;
    }
    				

    Ten kod definiuje interfejs Product z metodą getName(), która zwraca nazwę produktu.

  3. Tworzenie klas produktów: Stwórzmy dwie klasy implementujące interfejs Product: ConcreteProductA i ConcreteProductB.
  4. 
    class ConcreteProductA implements Product {
      public function getName(): string {
        return "Produkt A";
      }
    }
    
    class ConcreteProductB implements Product {
      public function getName(): string {
        return "Produkt B";
      }
    }
    				

    Te klasy implementują interfejs Product i zwracają odpowiednio “Produkt A” i “Produkt B”.

  5. Tworzenie fabryki: Stwórzmy klasę Factory, która będzie odpowiedzialna za tworzenie obiektów Product.
  6. 
    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.");
        }
      }
    }
    				

    Metoda createProduct() przyjmuje typ produktu jako argument i zwraca odpowiedni obiekt. Obsługuje również wyjątek w przypadku nieznanego typu.

  7. Użycie fabryki: Teraz możemy użyć fabryki do tworzenia obiektów.
  8. 
    $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 kod pokazuje, jak użyć fabryki do utworzenia obiektów ConcreteProductA i ConcreteProductB.

Ten przykład pokazuje podstawy wzorca Factory w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z bardziej zaawansowanymi implementacjami.

Dodaj komentarz 0

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