Przykłady 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 Shape, który będzie określał metody wspólne dla wszystkich kształtów.
  2. 
    interface Shape {
      public function draw();
    }
    				

    Ten kod definiuje interfejs Shape z metodą draw(). Wszystkie klasy implementujące ten interfejs muszą zaimplementować tę metodę.

  3. Implementacja klas konkretnych: Stwórzmy klasy Circle, Rectangle i Square implementujące interfejs Shape.
  4. 
    class Circle implements Shape {
      public function draw() {
        echo "Rysuję koło
    "; } } class Rectangle implements Shape { public function draw() { echo "Rysuję prostokąt
    "; } } class Square implements Shape { public function draw() { echo "Rysuję kwadrat
    "; } }

    Te klasy implementują metodę draw(), każda na swój sposób.

  5. Klasa fabryki: Utwórzmy klasę ShapeFactory, która będzie odpowiedzialna za tworzenie obiektów różnych kształtów.
  6. 
    class ShapeFactory {
      public function getShape($shapeType){
        switch($shapeType){
          case 'CIRCLE':
            return new Circle();
          case 'RECTANGLE':
            return new Rectangle();
          case 'SQUARE':
            return new Square();
          default:
            return null;
        }
      }
    }
    				

    Metoda getShape() zwraca obiekt odpowiedniego typu w zależności od przekazanego parametru.

  7. Użycie fabryki: Użyjmy klasy ShapeFactory do utworzenia i użycia obiektów.
  8. 
    $shapeFactory = new ShapeFactory();
    $circle = $shapeFactory->getShape('CIRCLE');
    $rectangle = $shapeFactory->getShape('RECTANGLE');
    $square = $shapeFactory->getShape('SQUARE');
    
    $circle->draw();
    $rectangle->draw();
    $square->draw();
    				

    Ten kod demonstruje, jak użyć fabryki do tworzenia obiektów różnych kształtów.

Ten przykład pokazuje podstawowe zastosowanie wzorca Factory w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z bardziej zaawansowanymi przykładami!

Dodaj komentarz 0

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