Odkud pochází „objektově orientované“ programování?

  • William Charles
  • 0
  • 3130
  • 753
reklama

Objektově orientovaný není jen náhodné slovo, které slyšíte v programovacích kruzích. Za jménem je důvod - ale co? Připojte se ke mně, když prozkoumám některé základy programovacích konceptů a vysvětlím, proč objektově orientované programování pohání technologii za moderním softwarem a porovná ji s procedurálním a logickým programováním..

Historie procedurálního programování

Když byly počítače poprvé vynalezeny, musely být explicitně programovány jednoduchými pokyny - a “software” byla jen sbírka těchto extrémně jednoduchých příkazů, které se spojily a které by běžely v pořadí.

Zpočátku je třeba tyto strojové kódy napsat - přesunout “bit” z této paměti na toto místo a provést logické “a” operace s tímto bitem atd. - ale dost brzy byly pomocí BASICu odebrány na vyšší úroveň.

Mám podezření, že většina z vás ve škole narazila na BASIC (univerzální symbolický instrukční kód pro začátečníky). Je to perfektní příklad procedurálního programovacího jazyka. Dokonce i můj první programovací vpád používal BASIC na Amstrad CPC-64. Každá řádka začíná číslem řádku a následuje jednoduchá instrukce v jazyce čitelném člověkem.

Protože procedurální jazyky se řídí příkazy jeden po druhém, je pro člověka obecně snadné sledovat, co se děje v programu. Je však také obtížné vyrobit cokoli jiného než pouhé cvičení - což nás přivádí k vytváření objektově orientovaného programování.

Objektově orientovaný?

U objektově orientovaného programování je myšlenkou seskupit související proměnné a funkčnost do jednoho objektu, což představuje nějaký druh komplexní datové struktury. Tento objekt lze poté opakovaně použít nebo rozšířit, aby byl ještě složitější.

Například hra může mít objekt hráče. Každý objekt hráče ve hře představuje v našem imaginárním online hře pro více hráčů jednoho jedinečného hráče v reálném životě. Každý objekt hráče má přezdívku, aktuální umístění, soupis a rychlost pohybu. Přestože je každý hráč jedinečný, přesto chceme, aby sdíleli stejnou základní funkci. Každý hráč může mít hýbat se funkce, která způsobí, že se hráč posune dopředu o X čtverců. Každý hráč může mít jinou rychlost pohybu, ale když řekneme hráči, aby se pohyboval jedním příkazem, bude vědět, jak reagovat podle své vlastní internetové mechaniky..

Proč je to užitečné? Vezměme si příklad reálnějšího života - protože moderní grafické uživatelské rozhraní by nebylo možné bez objektů - všechny operační systémy poskytují objekt Window. Je proto snadné mít nový “okno” kompletní s tlačítky pro uzavření a celou obrazovku a schopností pohybovat se - aniž byste museli programovat sami. Vše, co musíte udělat, je říct vytvořit okno.

Ve skutečnosti se moderní software skládá z tisíců až tisíců objektů - nejen oken, ale také tlačítek a polí formulářů a výstražných polí (které jsou samy o sobě zvláštním druhem okenního objektu) - a je to pouze způsob jejich uspořádání a logiky interakce mezi nimi, díky čemuž se tento software liší od ostatních. To znamená, že programátoři a návrháři softwaru se mohou volně soustředit na výrobu základní mechaniky svého programu, aniž by museli znovu vynalézat kolo.

Další výhodou objektově orientovaného designu je to, že funkčnost je oddělena a neviditelná. Takže když hráč v naší hře stiskne klávesu pro předávání, je to hovory funkce pohybu v hráčský objekt. Pokud uděláme malou změnu v tom, jak se tento pohyb přesně provádí v objektu hráče - jako je skákání místo chůze -, nemusíme upravovat posluchače klávesnice. Stále to volá “hýbat se” bez ohledu na to, co se děje interně v objektu hráče - takže můžeme změnit funkčnost bez přerušení všeho jiného.

Totéž platí v operačních systémech - pokud se uživatel najednou rozhodne změnit barvu okna na červenou, pak to nemusíte detekovat a okno také červeně - to vše je zabudováno do objektu okna.

Dědictví

Jakmile máme objekty, můžeme je také rozšířit a zdědit, abychom vytvořili užitečnější objekty s odlišným chováním nebo další funkčností. Vy umět znovu vynalézejte kolo - pokud chcete. V našem příkladu hráče možná chceme vytvořit “superman” objekt. Superman je stále hráčem, stejně jako všichni ostatní - chce také přezdívku a chce být uveden na stejných tabulkách vedoucích hráčů - ale namísto standardní akce pohybu, která kráčí hráčovým objektem X mezery vpřed, chceme, aby místo toho létejte - přesouvejte 10 čtverců najednou přes jakýkoli předmět v cestě. Rozšířením základního objektu hráče můžeme “zdědit” veškerou užitečnou funkci, aniž byste ji museli znovu přepisovat - ale stále můžeme “přepsat” funkce pohybu s naším speciálním supermanským létáním!

Objektově orientované programování je absolutní zjevení, pokud byste jen zažili procedurální programování, a já osobně si myslím, že je škoda, že se tento jednoduchý jazyk OOP nevyučuje na střední škole.

Jedna poslední věc: Logické programovací jazyky

Jsou to pro mě obzvláště zajímavé, protože jsou obecně nejužitečnější pro všechno, co souvisí s umělou inteligencí. Logické programovací jazyky, jako je Prolog, nepoužívají příkazy a pokyny v tradičním smyslu. Místo toho vyřeší problém vzhledem k sadě pravidel a podmínek.

Pomyslete na večeři, kterou pořádáte pro svou rodinu. Teta nemůže sedět vedle strýce, protože se budou hádat; nechceš, aby spolu seděly dvě děti, protože to budou maličtí darebáci; určitě nechcete sedět mezi dvěma dětmi. To je to tam - to je váš program Prolog napsaný. Nyní mu dejte seznam dětí a dospělých přicházejících na večírek a vydá seznam možných návrhů na sezení!

Doufám, že se vám tento úvod do programovacích konceptů líbil. Je mi líto, že jsem nemohl jít do podrobností a samozřejmě existuje milion věcí, kterých jsem se nedotkl. Pokud se chcete dozvědět více, dejte mi vědět v komentářích. Možná bychom mohli udělat řadu začátečníků objektově orientovaných programovacích tutoriálů pro různé jazyky, pokud bude dostatek zájmu? Nezapomeňte si také prohlédnout naše archivy související s programováním obsahující různé nástroje a programovací weby.

Image Credit: ShutterStock




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.