P7: Kvalitný objektovo-orientovaný návrh (desktop)
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška je reflexiou nad doterajším učivom predmetu z hľadiska kvality objektovo-orientovaného návrhu, pričom na príklade hry s obrami a rytiermi ukazuje, ako polymorfizmus umožňuje rozširovať program pridávaním nových tried bez zmeny existujúceho kódu. Vysvetľuje zapúzdrenie a modifikátory prístupu (public, private, protected, package access) nielen ako obmedzenie modifikácie, ale najmä ako spôsob, ktorým autor kódu chráni klienta pred zmenami vnútornej reprezentácie a ponecháva si právo ju meniť. Na príklade vzoru Visitor, pomocou ktorého sa rozšírilo správanie rytiera pri boji mečom bez zmeny jeho triedy, ilustruje princíp otvorenosti pre rozšírenie a uzavretosti pre zmeny (open-closed principle). Na úvod sa spomínajú aj plány ďalších tém, najmä aspektovo orientovaného programovania.
- - Polymorfizmus umožňuje flexibilné programovanie: útok funguje na akéhokoľvek obra a rytiera aj po pridaní nových odvodených tried.
- - Program treba rozširovať modulárne pridávaním nových tried, nie úpravou existujúcich tried a metód.
- - Zapúzdrenie (public, private, protected, package access) chráni klientsky kód pred zmenami vnútornej reprezentácie.
- - Private prvky autorovi kódu zaručujú, že ich môže meniť bez dopadu na klientov, ktorí sa spoliehajú len na verejné rozhranie.
- - Vzor Visitor umožňuje pridať nové operácie (napr. spôsoby oberania o energiu podľa meča) bez zmeny tried.
- - Open-closed principle: otvorenosť pre rozšírenie a uzavretosť pre zmeny.
- - Statické typovanie v Jave prináša kontrolu kompilátora, ktorá odhalí chyby ešte pred spustením programu.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky