Objektovo-orientované programovanie, ak. rok 2023/24

Cvičenie 8

(k prednáške 7)

späť


Projekt

Prezentujte pracovnú verziu programu podľa pokynov vyučujúceho.

Pokračujte v práci na projekte. Spravte revíziu svojho kódu – tzv. refaktorizáciu – za účelom skvalitnenia uplatneného objektovo-orientovaného návrhu.

^


Úlohy

  1. Vyskúšajte príklad s kruhom a elipsou z prednášky. Presvedčte sa, že rozumiete, prečo odvodenie kruhu od elipsy vedie k porušeniu Liskovej princípu substitúcie a návrhu podľa zmluvy. Prerobte príklad tak, aby aj kruh, aj elipsa boli odvodené od spoločného nadtypu. Všimnite si, že toto znemožňuje, aby metóda zvacsiElipsu() bola uplatnená na kruhy.
  2. Pripomeňte si úlohu 6 z minulého cvičenia (výnimky pri prekonávaní). Všimnite si súvis s Liskovej princípom substitúcie: rozšírenie množiny výnimiek, ktoré metóda vyhadzuje prakticky zoslabuje dôsledky, lebo metóda týmto zužuje množinu prípadov, v ktorých skončí priaznivo a vráti očakávaný výsledok. Toto by pre klientsky kód bolo problém, ale našťastie, narozdiel od bežného porušenia Liskovej princípu substitúcie, pred touto chybou varuje priamo prekladač.

Ak je to potrebné, vráťte sa k úlohám z minulých cvičení a preberte nejasnosti.

^



Valentino Vranić
vranic at stuba.sk