Open/Closed Principle i Liskov Substitution Principle

0

Open/Closed Principle

Wedlug tej zasady jak sie chce wprowadzic zmiany w programie to powinno sie rozszerzyc klase i dopiero tam to zrobic. I serio tak sie programuje w powaznych firmach? Oczywiscie moze zle doczytalem i chce sie dowiedziec. Byly tez przyklady, ze chodzi tylko o to zeby nie hardkodowac innych klas w danej klasie, wiec zrobic tak zeby latwo mozna bylo dodac nowa klase, ale czy wtedy to nie jest lamanie zasady YAGNI?

Liskov Substitution Principle

A tutaj mamy ze nie wolno zmieniac dzialania danej metody, wiec czy to sie nie gryzie z zasada Open/Closed Principle? Ale pomijajac to czy rozszerzajac klase mozemy tylko cos dodac do metody, a nie zmieniac jej dzialanie i to co bylo w klasie nadrzednej musi sie wykonac?

0

O zasadzie Liskov -- albo w klasie bazowej masz metodę wirtualną i wtedy możesz (lub nawet powinieneś) ją przedefiniować, albo masz niewirtualną i jej przedefiniowywanie jest przestępstwem. Tak ustalił projektant/twórca klasy bazowej i widocznie coś miał na myśli (miejmy nadzieję).

1 użytkowników online, w tym zalogowanych: 0, gości: 1