P7: Kvalitný objektovo-orientovaný návrh

Zdroj
ručne priradené
Pridané

Pozrieť na YouTube →

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.

Otvoriť AI: ChatGPT · Claude · Gemini

Zhrnutie prednášky

Prednáška začína organizačnými informáciami: najbližší termín odovzdania projektu je 8. apríla, odovzdáva sa priebežne len do repozitára na GitHube (nie do ISO) a termín je striktný. Potom sa vracia k reflexii v Jave ako schopnosti programu uvažovať nad vlastnou štruktúrou na metaúrovni. Na príklade počítania bojovníkov (rytieri, obri a ich odvodené druhy) ukazuje, že objekt typu Class reprezentuje triedu a umožňuje overovať príslušnosť objektu cez isInstance, kým doslovné porovnanie tried polymorfizmus ignoruje. Polymorfizmus zohľadňuje metóda isAssignableFrom a varovanie o raw type vedie k parametrizácii typu Class ohraničeným typom. Reflexiu treba používať striedmo, iba tam, kde sa nedá využiť polymorfizmus.

  • - Termín odovzdania 8. apríla je striktný, odovzdáva sa priebežne len na GitHub.
  • - Reflexia je schopnosť programu skúmať vlastné triedy a objekty na metaúrovni.
  • - Objekt typu Class reprezentuje triedu a získa sa literálom, napr. Knight.class.
  • - Metóda isInstance je dynamickejšia ako operátor instanceof, lebo triedu dostane ako parameter.
  • - Doslovné porovnanie tried nezohľadňuje polymorfizmus, preto pre odvodené typy vráti nulu.
  • - Polymorfizmus zohľadní isAssignableFrom; Class treba parametrizovať, aby nevznikol raw type.
  • - Reflexia komplikuje kód, preto sa používa len tam, kde nestačí polymorfizmus.

Zhrnutie pripravené s pomocou AI z prepisu videa.