Objektovo orientované programovanie je paradigma, pohľad na to, ako programovať. Čoskoro sami uvidíte, že OOP prináša dosť zásadné zjednodušenie všetkých bežných problémov a ťažkostí, ktoré sa v reálnom programovaní riešia stále dokola.
Základnou myšlienkou objektovo orientovaného programovania je rozdeliť veľkú aplikáciu (zložitú úlohu) na mnoho malých častí, ktoré môžeme riešiť elegantne a nezávisle.
Ak napríklad programujeme rezervačný systém pre letenky, ide o veľmi komplexný projekt, ktorý rieši tisíce prípadov. Ak dokážeme celú zložitú logiku rozložiť do mnohých vrstiev a častí, môžeme ľahko pochopiť celý zložitý systém a samostatne naprogramovať jednotlivé čiastkové úlohy.
Okrem akademického hľadiska existuje mnoho praktických dôvodov na používanie OOP:
Osobne si neviem predstaviť, že by tímy s viac ako jednou osobou programovali inak.
Poznámka:
Používanie objektov zaťažuje počítač o niečo viac pamäte a procesora, takže sa tým trochu zníži výkon aplikácie. V reálnom prostredí to však nevadí, pretože preprogramovaním aplikácie na objekty sa síce stratí určitý výkon (zvyčajne v jednotkách percent), ale programátorom sa ušetrí čas (zvyčajne desiatky až stovky percent). Ľudský čas je vždy oveľa drahší (a veľmi obmedzený) ako čas počítača.
Nezabúdajte tiež, že OOP prináša veľké zjednodušenie celej aplikácie a umožňuje dokončiť veľké aplikácie v rozumnom čase. Veľký počet zložitých aplikácií by bolo takmer nemožné naprogramovať bez objektov.
Základným cieľom OOP pri návrhu softvéru je čo najviac simulovať vlastnosti, správanie a princípy reálneho sveta. Objekty v OOP predstavujú skutočné entity. Tento spôsob myslenia nám umožňuje vytvárať obrovské komplexné systémy, ktoré sa dajú dobre pochopiť, interne riešiť reálne problémy tak, ako by sa riešili bez počítača, a princípy sa dajú vysvetliť skutočným ľuďom.
Ak napríklad implementujeme aplikáciu na správu obsahu, má zmysel rozložiť všetku vnútornú logiku do mnohých reálnych entít (článok, autor, kategória) a relácie vytvárať nie podľa umelo vytvorených ID záznamov (ako sa to bežne robí v databázach), ale podľa reálnych vzťahov.
Príklad konkrétnej implementácie:
class Article{private Author $author;/** @var Category[] */private array $categories;private string $title;}class Author{private string $name;}class Category{private string $name;}
Ako vidíme, trieda Article
neobsahuje len technické parametre, ako je ID záznamu s autorom, ale je skutočnou väzbou na entitu Author, ktorá má opäť svoje vlastné vlastnosti.
Vysvetlenie konkrétnej implementácie a syntaxe nájdete v úvodnom tutoriáli.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | sk