Dziedziczenie a zasady SOLID

Założenie: Pokażemy, jak prawidłowo stosować dziedziczenie w PHP, uwzględniając zasadę podstawienia Liskov (LSP) z SOLID.

Krok po kroku:

  1. Stworzenie klasy bazowej: Zdefiniujmy klasę `Ksztalt` reprezentującą ogólny kształt geometryczny.
  2. 
    
    				
  3. Stworzenie klasy pochodnej: Utwórzmy klasę `Kwadrat` dziedziczącą po klasie `Ksztalt`.
  4. 
    bok = $bok;
      }
    
      public function pole() {
        return $this->bok * $this->bok;
      }
    }
    ?>
    				
  5. Stworzenie klasy pochodnej (niepoprawny przykład): Utwórzmy klasę `Prostokat` dziedziczącą po klasie `Ksztalt` – przykład naruszający LSP.
  6. 
    szerokosc = $szerokosc;
        $this->wysokosc = $wysokosc;
      }
    
      public function pole() {
        return $this->szerokosc * $this->wysokosc;
      }
    }
    ?>
    				
  7. Demonstracja problemu: Próba użycia `Prostokat` jako `Ksztalt` może prowadzić do błędów, jeśli oczekujemy zachowania spójnego z klasą bazową.
  8. 
    pole() . "\n"; // Poprawne
    echo "Pole prostokąta: " . $prostokat->pole() . "\n"; // Poprawne, ale nie zawsze zachowuje się jak Ksztalt
    
    // Problem pojawia się, gdy traktujemy prostokąt jak kwadrat:
    // $kwadrat = new Prostokat(5,5); // To nie jest poprawne, narusza LSP
    ?>
    				
  9. Poprawne rozwiązanie (interfejsy): Zamiast dziedziczenia, lepiej użyć interfejsu, aby zapewnić spójność.
  10. 
    
    				

Ten przykład pokazuje podstawy dziedziczenia w PHP i jak ważne jest przestrzeganie zasad SOLID, aby uniknąć problemów w kodzie. Zachęcamy do dalszego zgłębiania tematu i poznawania innych wzorców projektowych.

Dodaj komentarz 0

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