Proč programovat v LS objektově Jiří Krákora, Alliance Healthcare
Princip
Rozdíl Perzistentní vs. Transientní Kompaktní vs. Modulární Jednoúčelový vs. Univerzální
Objekt jako dílek stavebnice Lego
Modulárnost aplikace Znovupoužitelnost modulů Přenositelnost funkcí Abstrakce problému Zapouzdření algoritmů Čitelnost kódu Dědění tříd Single responsibility Atributy OOP
OOP je modulární
Příklad Pracuji se zapouzdřeným dílkem stavebnice, který je obecně použitelný, lehce přenositelný a pro nezúčastněného i lehce čitelný…
Třída je architektonický plán Vidím výslednou aplikaci, atomizovanou na množinu logických celků Logické celky řeším samostatně, bez ohledu na zbytek aplikace Každý problém abstrahuji a řeším v obecné rovině Abstrakce
Příklad
Zapouzdření
Čitelnost kódu
Každý objekt může mít libovolný počet potomků Všichni potomci dědí vlastnosti i metody rodičovského objektu Potomci rozšiřují funkcionalitu rodiče, nebo mění vnitřní strukturu Dědění
Příklad
Příklad
Příklad
Princip jedné odpovědnosti Každý objekt by měl být zodpovědný za jednu konkrétní věc Očekávané služby by měly být spjaty s touto odpovědností Důvodem je větší robustnost tříd s jednou odpovědností Single responsibility
Příklad
… ale čím déle běžíte, tím se vám běží lépe OOP je běh na dlouhou trať…
Děkuji za pozornost