Cvicenie - Navrhove vzory 24.2.2022 9:15

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

Cvičenie začína spätnou väzbou k odovzdaným úlohám: dôraz na programovanie voči abstraktnému typu namiesto konkrétnych tried, na ukladanie hodnoty v triede (napr. číslo so zvolenou formátovacou stratégiou) a na to, aby sa riešenia nekopírovali z internetu. Po pripomenutí princípov z návrhového vzoru Strategy (oddeliť meniace sa od nemenného, programovať voči abstraktným typom, uprednostniť kompozíciu pred dedičnosťou) sa prechádza k vzoru Observer (Pozorovateľ) zo skupiny vzorov správania. Na príklade meteostanice s displejmi aktuálnych podmienok, štatistiky a predpovede je ukázané, že pevné previazanie triedy WeatherData s displejmi je nevhodné, lebo každý nový displej by vyžadoval zásah do nej. Riešením je princíp publisher–subscriber, teda vzťah one-to-many, v ktorom sa pozorovatelia zaregistrujú u subjektu a pri zmene stavu sú automaticky upozornení, čím sa dosiahne minimálna previazanosť objektov.

  • - Programovať voči abstraktnému typu (rozhraniu), nie voči konkrétnym triedam, inak sa pri novom type musí meniť existujúci kód.
  • - Úlohy riešiť samostatne a premyslene; kopírovanie zadaní z internetu prináša zbytočný balast.
  • - Princípy zo Strategy: oddeliť meniace sa od nemenného, používať abstraktné typy a uprednostniť kompozíciu pred dedičnosťou.
  • - Observer definuje závislosť one-to-many: pri zmene stavu subjektu sú všetci zaregistrovaní pozorovatelia automaticky notifikovaní.
  • - Analógia s predplatným novín: vydavateľ (subjekt) a predplatitelia (pozorovatelia), ktorí sa môžu prihlásiť aj odhlásiť.
  • - Príklad meteostanice: WeatherData ako subjekt a displeje (aktuálne podmienky, štatistika, predpoveď z tlaku) ako pozorovatelia.
  • - Pevné zakódovanie displejov v triede WeatherData je zlý návrh; cieľom je minimálna previazanosť objektov a ľahké pridávanie nových displejov.

Zhrnutie pripravené s pomocou AI z prepisu videa.