Jeśli spojrzymy na klasy Prostokąt oraz Kwadrat, można zauważyć, że klasa Kwadrat dziedziczy po klasie Prostokąt metody do ustawiania/pobierania wysokości oraz szerokości. W przypadku klasy Prostokąt obecność tych metod jest naturalna (każdy prostokąt może mieć wysokość różną od szerokości). Nie jest tak w przypadku klasy Kwadrat, ponieważ zmiana jego szerokości wiąże się ze zmianą wysokości. Oznacza to, że wywołanie metody ustawSzerokość() na obiekcie klasy Kwadrat spowodowałoby zmianę wartości zwracanej przez metodę pobierzWysokosc(). W takim przypadku oprogramowanie musiałoby sprawdzać typ obiektu, który zmienia, żeby wiedzieć, w jaki sposób obiekt będzie się zachowywał po wprowadzeniu zmian. Taki styl programowania wprowadza dodatkowe zależności w kodzie i utrudnia jego późniejsze utrzymanie oraz rozwijanie.
Zobacz też SOLID
Przypisy
Linki zewnętrzne Dyskusja na temat zasady Inny sposób wytłumaczenia
Kategoria:Programowanie obiektowe Kategoria:Praktyki programistyczne