Úvod do objektově orientovaného programování

1. 3. 2020

Se zavedením konceptu "objektu" mohli vývojáři popsat strukturu softwarových systémů pomocí pojmů "reálného světa" a udržovat systémy s miliony řádků kódu, což bylo nemožné při použití procedurální paradigmatu. Procesní programování nemohlo poskytnout dostatečnou úroveň vývoje a podpory komplexních softwarových systémů v oblasti bankovnictví, telekomunikací a dalších oblastí činnosti kde se požadavky na programy neustále stávají složitějšími. Styl (paradigma) programování, který je založen na koncepci třídy a objektu, byl vyvinut jako vývoj procedurální paradigmatu, která přestala být účinná, když se vyvinula složitost softwarových projektů a nazývala se "objektově orientované programování" (OOP).

Historie vývoje

Poprvé se objektově orientované programování začalo používat v jazyce Simula 67, který měl velký vliv na vývoj jazyků, jako jsou Lisp a Smalltalk. Největší vývoj OOP však byl v polovině 90. let, kdy byla vytvořena C ++ "OOP classic", jejíž práce s objekty byla přijata populárními programovacími prostředími Delphi a VisualFoxPro. PLO se nadále vyvíjí a mezi novými paradigmaty lze identifikovat paradigma zaměřenou na aspekty a orientovanou na předměty. Každý objektově orientovaný jazyk rozšiřuje základní pojmy OOP s jedinečnými přírůstky a rozšířeními v závislosti na konkrétním použití. V tomto článku se budeme zabývat implementací OOP v programovacím prostředí Delphi a PHP vývojovým jazykem.

Základní koncepce OOP

OOP paradigma se skládá ze tří základních pojmů: zapouzdření, polymorfismus a dědičnost.

objektově orientované programování

Zapouzdření

Mechanismus kombinace kódu a dat uvnitř objektu, stejně jako jejich ochrana před vnějšími změnami. Uvnitř objektu mohou být data a kód otevřené (veřejné) pro přístup a úpravy jinými objekty a uzavřené (soukromé) pro externí změny.

objektově orientované programování delphi

Polymorfismus (polymorfismus)

Nejdůležitějším prvkem koncepce OOP, který umožňuje použití jediného jména pro funkce, které provádějí podobné akce. Zpočátku je obtížné pochopit význam polymorfismu, a proto uvádíme jednoduchý příklad. V libovolném programovacím jazyce pro každý typ čísel, například v "klasickém" C pro nalezení modulu čísla, musíme použít funkci abs () pro celá čísla, pro dlouhá celočíselná laboratoř (), pro čísla s plovoucí čárou fabs (). To vede k nutnosti zapamatovat si syntaxi sady funkcí a dalšího zatížení paměti a procesoru počítače. Objektově orientované programování pomocí mechanismu polymorfismu vám umožňuje napsat funkci, abyste modul modulu () určili a použili jej v aritmetických výpočtech, aniž byste přemýšleli o typu čísel. Stačí napsat výraz modul () a získat správnou odpověď. Plus snížení kódu programu a zatížení systému. Jiný příklad polymorfismu je zobrazen na obrázku - obecná třída "Křivka" (Tvar) je "rodič" pro kruh, obdélník a hvězdu.

objektově orientované programování php

Dědictví

Mechanismus OOP, který umožňuje objektu mít (zdědí) metody jiného objektu. Přesněji, objekt obdrží (dědí) všechny základní vlastnosti svého "předka" a přidá k nim metody, které jsou pro něj jedinečné. "Dědic" objektu zdědí metody dvou objektů, atd. Dědičnost se také nazývá třídní hierarchie. Použití dědičnosti usnadňuje správu velkého množství informací a programového kódu. Dále můžete vidět, jak objekty dědí společné vlastnosti z nadřazené třídy "Auto".

Programování orientované na objekt - dědičnost

Hlavní prvky tříd a objektů v OOP

Všechny jazyky podporující objektově orientované programování mají stejnou interpretaci koncepce třídy a objektu. Třída - typ dat pro popis vlastností a provozu "skutečného" objektu, například bankovního účtu. Objekt je samostatná instance třídy. Metoda - kód softwaru, který mění chování objektu nebo jeho stav v závislosti na hodnotě jeho vlastností. Modifikátor přístupu - metoda, která odděluje prvky třídy do otevřených a uzavřených polí. Konstruktor je metoda, která je provedena nejprve po inicializaci objektu a vrátí jej do původního stavu. Destruktor je metoda nazvaná při vymazání objektu. Schéma znázorňuje interakci třídních prvků.

Interakce prvků třídy

Implementace OOP v Delphi

Jádrem vývojového prostředí je podmnožina jazyka Pascal s prvky OOP - Object Pascal. Prostředí a jazyk Delphi bylo prvním grafickým vývojovým prostředím pro MS Windows. Objektově orientované programování delphi je sada standardních abstraktních tříd, které zapouzdřují určité prvky programu Windows, jako je grafické rozhraní, práce s RAM atd. Delphi má významný vliv na vývoj všech objektově orientovaných jazyků, zejména C # pro vývojové prostředí Microsoft .NET. Nejnovější verze Delphi 8 funguje pouze s .NET.

Hierarchie standardních tříd Delphi

Hierarchie tříd v Delphi

TObject je "rodič" všech tříd Delphi. Třída poskytuje všechny své "potomky" s podporou funkcí objektově orientovaného programování a jeho konstruktér zajišťuje, že program spustí a pracuje správně ve Windows. TPersistent - poskytuje objekty s interakcí na úrovni datových přenosových toků. Přenáší toky dat a poskytuje přístup k Inspektoru objektů. TComponent - umožňuje vytvářet libovolné nevizuální objekty a zajišťuje jejich interakci s celým vývojovým prostředím. Právě toto umožňuje práci s objekty a komponentami programu ve vizuálním vývojovém prostředí. Jeho potomky TGraphicControl vytvářejí různé prvky bez okna, například grafické pozadí atd. TControl - všechny objekty zobrazené na obrazovce (okna, seznamy, tlačítka, formuláře atd.) Jsou jeho potomci. Zahrnuje práci s funkcemi GUI Windows TWinControl - poskytuje práci s okny programu. Jeho potomka TCustomControl umožňuje vytvářet ovládací prvky, jako jsou textové editory, seznamy voleb.

Implementace OOP v PHP

PHP je jedním z nejpopulárnějších jazyků pro vývoj webových aplikací a původně byl plně programovacím jazykem. Objektově orientované programování v php se objevilo později, počínaje čtvrtou verzí. Potřeba podporovat oba programovací styly - procedurální a objektově orientovaná - vedla k tomu, že prvky OOP jsou stále doplňkem, nikoli základem jazyka. Situace se však rychle mění směrem k objektu PHP. Verze PHP 5 plně podporuje všechny prvky OOP a vývojář má úplnou svobodu při vytváření vlastních tříd a objektů, na rozdíl od Delhi, kde vývojář musí používat standardní třídy v jednom či druhém případě se všemi možnými nevýhodami. Syntaxe prvků objektu PHP není obtížná pro programátory, kteří dříve pracovali na C ++ / # a Delphi.

Vývoj OOP

Objektově orientovaná programovací paradigma se nadále vyvíjí a používá se v mnoha prvcích softwarových systémů, například ve specializovaných databázích, která podporují objektový datový model a při vývoji aplikací pro tablety a mobilní telefony. Mezi novými jazyky objektů můžeme rozlišovat Python, který je široce používán pro vývoj internetových systémů, a Go, multifunkční programovací jazyk od společnosti Google.