Objektová orientace Flashcards
výhody objektové orientovaného modelování
stabilita navrhovaných prvků ( z pohledu neustále se měnících požadavků) a jednoduchost jejich změn
Objektové modelování
kolekce vzájemně komunikujících objektů
Object
spojuje data a funkcionalitu do jedné jednotky; reprezentuje entitu reálného či abstraktního světa; má stav, chování a identitu, zodpovědnost, protokol
rozhraní objektu
definuje množinu operací, které objekt nabízí, umí (ale nezajímá nás jak); implementací operace je medota
třída
množina objektů mající stejné chování a atributy; vzor (šablona) pro vytváření objektů určitého typu; neobsahuje pamět (instance - objekt - už ano)
vlasnosti OO
abstrakce, zapouzdření, dědičnost, polymorfismus
abstrakce
(abstraction), vytvářený systém objektů je abstrakcí řešeného problému
zapouzdření
(encapsulation) ukrytí implementačních detailů,
dědičnost
(inheritance) umožňuje vytvářet nové objekty na základě již vytvořených objektů; možnost sdílení nebo rozšíření chování; vzniká hierarchický vztah
polymorfismus
(mnohotvárnost) znalost třídy jak provést určitou operaci, která může být společná pro více tříd
operace vs metoda
operace je abstraktní pohled; metoda implementuje operaci
identita vs shoda objektů
shoda (objekty mají stejný stav - aktuální hodnoty atributů)
časná vs pozdní vazba
operace (metoda) se vybere v době kompilace vs opera se vybere za běhu až podle objektu (viz polymorfismus)
stavební bloky jazyka UML
předměty (things), vztahy, diagramy (kolekce předmětů a vztahů)
signatura operace (dědičnost tříd, přepisování - aby mohl potomek přepsat operaci, musí mít stejnou signaturu)
název, typ návratové hodnoty, typ a pořadí argumentů