Objektově orientované programování (PLO): polymorfismus

Programování je proces vyvíjení řešení pro "živé" dynamické úkoly ve formě pevných struktur kódu, dat, funkcí a algoritmů. Postup tvorby přísné syntaxe s nejistou sémantikou. Skutečným úkolem je dobře známý velký problém ve smyslu algoritmizace: k dosažení požadovaného řešení musí být úkol umístěn v přesných syntaktických konstrukcích.

PLO se dvakrát pokoušela "přerušit" tuto dlouhodobou koncepci programování, ale "vazby" klasického stylu kódování dat a algoritmu jsou stále silné.

Úroveň a kvalifikace

Počítačový případ začal výpočty, ale rychlost, s jakou se zvyšuje zrychlení pohybu v oblasti zpracování informací, ještě není dostatečně velká, aby se klasické programování stalo nemožným a přestalo existovat.


Objektivně a skutečnost, že vývojář netrvá, a zákazník nevyžaduje skutečné řešení skutečných problémů. Obě strany jsou zvyklé, že se omezují na dostupné nástroje a návyky. Formy polymorfismu OOP, myšlenka zapouzdření kódu a dědičnost vlastností (metod) spočívají v oblasti programování, ale ne v oblasti problému, který má být vyřešen. Příkladným příkladem je knihovna PHPOffice /PHPWord. Chcete-li to třeba (požadavků zákazníka) kvalifikovaný vývojář by měl vytvořit své vlastní systémové objekty, ale i současnou úroveň zákazníka - triviální kompozice, která má přednost před svou rozvojovou programátor (jinak splňují požadavky). Taková situace:
Bv tomto případě je použití knihovny - úkolem formátování dokumentů, jako je diplom nebo disertační práci musí být připraven v souladu s normou. Zákazník představil své požadavky a programátor šel svou cestou mnohem dál.


z kompletní analýzu dokumentu, jeho montáž ve správném formátu, pracuje s tabulkami libovolné úrovni vnoření, fúze a rozdělení buněk vytištěných v libovolném směru, a tak dále.

, polymorfismus a OOP

lepší definice polymorfismus přijít na to, jak se odkazovat na historii myšlence objektově orientovaného programování, tak populární dnes, takže se často používá, ale nerealizované v podstatě hned. Každý autor má svůj vlastní koncept počátku a povahy OOP. Pro každého pozorného čtenáře je tento pojem spolehlivý a objektivní. Ale dodnes všichni přijmou jako bezpodmínečnou axiom pouze tři polohy:
  • zapouzdření;
  • polymorfismus;
  • dědictví.
  • Některé přidal další: abstrakce, a často je to, a ve skutečnosti je hlavní bod se používá jako základ popsat podstatu OOP.
    To znamená, že myšlenka OOP polymorfní, popisuje jeden navrženy odlišně, nebo, popisují různé, ale na základě stejných čtyřech polohách. Demokratický princip není typický pro oblasti informačních technologií, ale je třeba pochválit, kombinace a soužití mnoha názorů o stejnou věc - skutečný polymorfismus v akci.

    Populární definice polymorfismu

    OOP - další etapa vývoje informačních technologií. Stěchto několik sporů, ale základní axiomy a předpisy z hlediska sémantiky tak rozdílné, není hoden pozornosti mimo jejich celistvosti.
  • polymorfismus-programování - schopnost poskytovat stejné základní rozhraní pro různé formy (datové typy).
  • Polymorfismus - možnost objektů mít jinou realizaci.
  • Polymorfismus je schopnost z
  • Klasické (od tvůrce C /C ++), "jeden rozhraní -. Mnoha implementacích"
  • parametrické polymorfismus prostředky
  • , polymorfismus - teorie typů
  • odběr možný bez zapouzdření a dědičný, jako nemožné polymorfismus bez dědictví
  • jsme se shodují, že to všechno se vztahuje k jednomu a totéž: ale forma vyjadřování myšlení, podstaty a smyslu - nejsou podobné. Ale je něco společného.

    Podstata: developer - zákazník

    Klasické rozvojové programy vyžaduje programátor a úkoly (klient, zákazník). Programátor zkoumá úlohu, formalizuje ji a provede kód, který vede ke spuštění. Zákazník popírá všechny navrhované nebo jen její část, poukazuje na nedostatky a programátor znovu dělá svou práci. Tento cyklistický proces řešení problému naznačuje, že pokud je jednoznačně spojené dvě naprosto odlišné entity:
  • Počítač nemůže sám vyřešit problém;
  • vyžaduje program tak, aby počítač mohl "rozumět" a "vyřešit problém".
  • Cíl - Působnost programu zákazníka - Algoritmus „adaptaci“ na schopnostech oznamovací oblasti počítače - do působnosti programátora. Roledruhým je "přizpůsobit" počítač požadavkům úlohy a to je zbytečné! Object-Oriented Programming navrhuje abstrakci. Objekty jsou - to je oblast zákazníka; je realizace objektů - to je pole programátora. Mezi zákazníkem a vývojářem neexistuje žádné "technologické" spojení. Myšlenka je kardinál, dosud neproběhla, ale něco funguje stabilně.

    okna, knoflíky a jiné předměty

    Historie technologie Art Air, Object časopis, Turbo Vision, graf Vision - je historie. Jen málo lidí si pamatuje tyto implementaci OOP, které nejsou používány a zapomenut, ale známé miliony okenní rozhraní Windows lidí a objektů v prostředí PHP, JavaScript a další jazyky internetové technologie se používají stovky tisíc vývojářů kód je znát miliony návštěvníků webových zdrojů
    Pravděpodobně je to jediný správný způsob, jakým se má OOP rozvíjet: zapouzdření, dědičnost, polymorfismus pro vývojáře, ale ne pro uživatele. Je charakteristické, že tato pozice byla ústředním bodem pro návrh vizuálního designu (rozhraní) softwarových aplikací Windows, jako jsou Turbo Vision a Graph Vision.
    Koncept, který je založen na produktech typu Air Art Technology a Object Magazine, se výrazně lišil. Zde abstraktní objekt byl prvním předkem informační struktury, zapouzdřeného na abstraktní úrovni kódem zpracování informací. Objekty oken, knoflíků, prvků vizualizace zde byly druhotné. V první verzi (Windows a podobně) se paradigma PLO: zapouzdření, dědičnost, polymorfismus odráží na abstraktní úrovnipředchůdce a implementace kódu byla vytvořena na úrovni každého konkrétního potomka v oboru dědictví v souladu s požadovanou strukturou a obsahem. Ve druhé verzi (Air Art Technology a Object Magazine) je důležitá úroveň abstraktního objektu. Co se stane s určitým potomkem - není podstatou, hlavní věcí je, že jeho dědičná větev splňuje požadavky všech rodičů na abstrakci kořenů.

    Objekt a systém objektů: algoritmus

    Ideální objektově orientovaný koncept může manipulovat pouze s objektovými a objektovými systémy. V moderních programovacích jazycích pod objektem (třída) obvykle rozumí popis objektu a instance objektu a pro použití popisu jazyka jazyk dovoluje programátoru pracovat se statickými objekty, zatímco dynamický objekt - Jedná se o instanci popisu s jeho jedinečným obsahem a strukturou, ale používá stejný popis (popis) vlastností.
    Současná praxe se vztahuje k pojetí objektu k nástroji, to znamená k programovacímu jazyku, rozhraní, přístupu k databázi, síťovému připojení, nicméně není nic, co by naznačovalo zájmy zákazníka na řešitelném problému. To je ideální pro jednoduchý OOP: polymorfismus umožňuje dělat zejména různé konstrukční prvky, ale spravovat je se stejným kódem. Ale zde se nejedná o objekty úkolu, které se vůbec nepovažují za objekt pro objektově orientovanou analýzu. Programátoři si vybrali OOP jako prostředek ke zlepšení kvality a výkonnosti své práce, ale nedopustili se zákazníkovi. Základní pojmy OOP - zapouzdření,dědičnost, polymorfismus - zůstal v oblasti vývoje a nebyl transplantován do rozsahu úkolu.

    Objekt a systém objektů: úkoly a řešení

    Počítač - programátor - úkol. Středové spojení je nadbytečné. V ideálním případě by měly existovat pouze dva relativně závislé kontury: (počítač - programátor) - úkol. To znamená, že uživatel, zákazník nebo návštěvník má nástroj pro řešení jeho problému. Jako implementovaný nástroj se zákazník nestará.
    V ideálním případě je to jen počítač, který dokáže pochopit, co zákazník chce, a dělat, co chce. Jak by to vypadalo: místní program nebo webové stránky přístupné přes prohlížeč, speciální program distribuovaného zpracování informací, informační systém pro zákazníka - na tom nezáleží. Je důležité, aby mezi úkolem a počítačem nebyly žádné zbytečné odkazy, ale nejdříve pochopitelné a vyřešit druhou. K dosažení tohoto cíle a klientský počítač musí být připojen objekty jeden systém a obsah, strukturu a obsah každého objektu identifikuje zákazníka a metody a vlastnosti objektů prováděcích programátor. Ideální je, když práce zákazníka vytvořit objektový systém, který potřebuje a pracuje na provádění metod a vlastností těchto objektů, jsou rozloženy v čase. Dále bude bránit implementace objektů systému (programátor) z obsahu obsahu (zákazníka), tím lepší je proces. Nic nebrání tomu, aby se zákazník a programátor vzájemně soustředili v procesu řešení problému, ale je důležité mít jasné oddělení sémantiky. Každý musí dělat své vlastní podnikání, programátor není povinen ovládat oblastÚkol aplikace, a zákazník nemusí pochopit kód a jsou navíc strany by neměly dávat navzájem rady, které se jich netýkají.

    Tradiční a předmět programování

    Základní principy OOP: zapouzdření, dědičnost, polymorfismus ve formě, ve které se seznámí a poptávky, což vede k výraznému zlepšení kvality a spolehlivosti kódu výrazně urychluje programátor a mají mnoho dalších pozitivní kvality.
    Ale ty věci jsou tam: klasické programování není horší než na své pozice, a mnoho objektově orientované nápady realizovány klasickou kód. Nicméně, myšlenka na OOP a rekurze za následek adekvátní expozice vůči provozovatelům syntaxe klasické syntaxe, logiky běžného kód, který nemá žádný vztah k objektově orientovaný styl psaní a myšlení. Seznamy a turn změnil představu o první a poslední prvek pole, tam byl cyklů „pro každý“ model a pojmenování možnosti, využití a výkonnost stal se dokonce populárnější než kdy předtím. Ve skutečnosti je fakt, že proměnné ztratila jejich „clear“ osoba (typ proměnné lze měnit podle potřeby a nepopisuje proměnnou potřeby) říká, že klasické, ve skutečnosti již dlouho objektově orientovaný a uznávané základní principy OOP: zapouzdření , dědičnost, polymorfismus jako nápady jsou nezbytné.

    jako základ, objektu nebo systému

    Abstrakce jako základní koncepční ustanovení OOP, bez ohledu na to, kde je oblast odpovědnosti (realizace)objektů - v prvním abstraktním objektu nebo v určitém potomků - ponechává otevřenou otázku: Kde začít s objektem nebo systému?
    Je-li základem pro uvedení objektu, bude to nikdy nestane systém, protože systém bude v něm, a on bude velmi specifický tvrdě brzy. Máte problémy s abstrakcí: počáteční objekt přesně vystihuje základní problém je třeba řešit, že není převeden na jinou úlohu. Pokud je základem uvedení systému objektů, pak systém systémů. Je obtížné si představit ve vztahu k určitému úkolu a od něhož začít vývoj - je také obtížné pochopit. Zkrátka a dobře, OOP ze svých polymorfismus rozdíly v povaze, formy provádění, skutečný počet parametrů ve funkcích dělá představu o systému, který je na začátku, as
  • z řešení tohoto problému (např menu);
  • o počátečních podmínkách (aplikace úkolu v různých podmínkách, údaje);
  • ​​
  • o způsobech provozu (testování, konfigurace, práce).
  • To je ale jako nedal žádný důvod k systémovým objektům úkolů na bázi. Často stačí definovat jeden jediný objekt.

    Historie procesu řešení problému

    Mezi nejdůležitější zásady OOP: polymorfismus a abstrakci - prioritní cíl jako počáteční systémové objekty. Ve sporu, který by měl být dříve, kuřata nebo vejce, vítězství zde dostane kuřák. Není pochyb o tom, že by vše mělo začít s abstraktním objektem, nikoliv však systémem objektů. Aledaný časový faktor a připojit ji do úrovně jednotlivých objektů, počínaje od prvního abstraktně, pak dal kontroverzní myšlenku na začátku řešení a objekt, a systém je jediná rozumná. V případě, že klasické pojetí programování na řešení problému změní soubory obsahu databáze a další změny, koncept OOP polymorfismus, zapouzdření a časový faktor měnící obsah, strukturu a vlastnosti systémových objektů problému. OOP programátoři v nejmenším zájmem o konceptu souboru, databáze, algoritmus - konkrétní programátor si myslí, že je reálné, ale objekty existují v čase a změnit průběh dosahování svých cílů.
    Tedy, na začátku je předmětem objektů systému a logika systému - časová osa: start úkol vytvoření první předmět, vstup nebo sběru dat, tvoří další předmět, avšak nic nebrání tomu, první předmětem postupuje k dalšímu řešení. Každá úroveň objektů se chová jako samostatné systémové objekty, to znamená, že to je jeden objekt, ale v kontextu procesu začala a časová hodnota - systém objektů na časové ose. Pro plnou implementaci polymorfismus OOP, dědičnost a časový faktor kombinovat poskytnout dynamický první, která nejenže může časem změnit, ale také produkovat položky, které nejsou poskytované developerem generovaného v průběhu procesu zařazování, promítá zákazníka.

    v reálném polymorfismus OOP vzorku

    Složitost úkolů, že síla OOP, není srovnatelná se situací, která je k dispozici v klasickém hláskováníprogramy. Samozřejmě, že řešení jakéhokoli problému je vždy k dispozici obvyklým způsobem, ale otázka, kolik času a úsilí bude stát, je zbytečné. Ne tak dávno byla vyvinuta knihovna PHPOffice /PHPWord, ale pro využití jejích schopností je téměř vždy nutné vytvořit svůj vlastní systém objektů. Například jednoduchý * .docx soubor:
    je zip archiv mnoha souborů a složek Office Open XML (OpenXML, OOXML). Každý soubor je napsán ve značkách XML a při přidávání, úpravách a odstraňování písmen, slov, tabulek, seznamů a dalších. prvky obsahu souborů začínají reprezentovat sekvenci značek, které ne vždy obsahují plné elementy, často jeden prvek je napsán sadou značek. Pokud tento soubor odesíláte jako sled tagů, objeví se zajímavý obrázek:
    Je snadné vidět, že první a jediný odstavec dokumentu je reprezentován množstvím značek. Co se týče tabulky a tabulky zabudované do ní, objem popisu všech prvků není náchylný k vnímání, ale je dostupný objektově orientovanou aplikací. Ve skutečnosti je obrázek zelený - je to zkušební výstupní značka, žlutá - parametry a typ značky, béžová - obsah. Vytvořené objekty jsou zaměřeny na obrábění. Pouze operace otevírání souboru dokumentu, jeho formátování a nahrávání jsou přístupné osobě. Řešení je jednoduché a praktické, ale implementace je zaměřena spíše na počítač než na osobu, důvody pro velikost funkčních a komplexních propojení mezi objekty.

    Stav oblasti OOP

    Rozvoj systémů správy lokalit, technologiíkonfigurace a správu serverů, zkušenosti s vývojem dynamických webových stránek umožnily objektově orientované programování dostupné všem. Problémem je, jak změnit své myšlení a zvykat si na myšlení na úrovni objektu, a ne v kontextu důsledně spustitelného kódu. Obvykle přechod od klasického programování k objektově orientovanému trvá dva až tři měsíce, ale cena se dramaticky vyplácí. Potenciál moderních programovacích jazyků, především PHP a javascript, uspokojí nejnáročnější vývojáře. Moderní OOP - polymorfismus, dědičnost a schopnost vytvářet vlastnosti objektů - pohodlné a praktické, jazyková syntaxe a pomocné nástroje poskytují komfort při práci a efektivitě kódu.

    Perspektivy myšlenky na objekt

    Jak dlouho bude klasické programování a jak bude rozvíjet PLO - je těžké říci. Zdá se, že vývojáři nástrojů nemají v úmyslu zvážit kontext spotřebitele (uživatel, zákazník). Sada nástrojů OOP - polymorfismus, imitace, zapouzdření a abstrakce - jsou orientovány na vývojáře. Moderní informační systémy a webové zdroje se snaží odrážet skutečnou realitu, zajišťovat fungování reálných objektů a vytvářet prostředí pro jejich fungování tak jednoduché, že budou přístupné pro spotřebitele, který je daleko od programování, zcela ponořený do své oblasti působnosti.

    Související publikace