Liskov Substitution Principle (LSP)

Założenie: Zrozumieć i zilustrować zasadę podstawienia Liskov (LSP) w PHP za pomocą prostego przykładu.

Krok po kroku:

  1. Stworzenie klasy bazowej: Zdefiniujmy klasę bazową Kwadrat, która ma metodę obliczającą pole.
  2. 
    bok = $bok;
      }
    
      public function pole() {
        return $this->bok * $this->bok;
      }
    }
    ?>
    				
  3. Stworzenie klasy pochodnej: Utwórzmy klasę pochodną Prostokat dziedziczącą po Kwadrat, dodając metodę ustawiania różnych długości boków.
  4. 
    szerokosc = $szerokosc;
      }
    
      public function pole() {
        return $this->bok * $this->szerokosc;
      }
    }
    ?>
    				
  5. Demonstracja naruszenia LSP: Spróbujmy użyć obiektu Prostokat w miejscu obiektu Kwadrat. Zauważmy, że zachowanie się różni.
  6. 
    pole() . "
    "; // Wynik: 25 echo "Pole prostokąta: " . $prostokat->pole() . "
    "; // Wynik: 50 // Naruszenie LSP - funkcja oczekująca kwadratu nie działa poprawnie z prostokątem. function obliczPoleKwadratu(Kwadrat $kwadrat){ return $kwadrat->pole(); } echo "Pole z funkcji: " . obliczPoleKwadratu($prostokat); // Wynik: 50 - nie jest to pole kwadratu! ?>
  7. Poprawne rozwiązanie (zaawansowane): Aby uniknąć naruszenia LSP, należałoby przeprojektować klasy, np. wprowadzając interfejs Figura z metodą pole().

Ten przykład pokazuje podstawowe zasady Liskov Substitution Principle. Zachęcamy do dalszego zgłębiania tematu programowania obiektowego w PHP!

Dodaj komentarz 0

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