Objektovo orientované programovanie (PLO): polymorfizmus

Programovanie je proces vyvíjania riešení pre "živé" dynamické úlohy vo forme pevných štruktúr kódu, dát, funkcií a algoritmov. Postup tvorby prísnej syntaxe s neistou sémantikou. Skutočnou úlohou je dobre známy veľký problém v zmysle algoritmizácie: na dosiahnutie požadovaného riešenia musí byť úloha umiestnená v presných syntaktických konštrukciách.

PLO sa dvakrát pokúsila "zlomiť" tento dlhotrvajúci koncept programovania, ale "závesy" klasického štýlu kódovania údajov a algoritmu sú stále silné.

Úroveň a kvalifikácia

počítačovej skrine začal s výpočtami, ale rýchlosť, pri ktorej sa zvyšuje zrýchlenie pri spracovaní informácie o pohybe nie je dostatočne veľká, aby klasické programovanie nemožné, a prestala existovať.


Objektívne a skutočnosť, že developer neudržuje, a zákazník nevyžaduje skutočné riešenie skutočných problémov. Obe strany sú zvyknuté obmedziť sa na dostupné nástroje a návyky. Formuláre polymorfizmus OOP nápady zapouzdřit kód a vlastnosti dedičnosť (metódy) sú v programovaní, ale nie v probléme, ktorý má byť riešený. Príkladným príkladom je knižnica PHPOffice /PHPWord. Ak to chcete potrebné (požiadaviek zákazníka) kvalifikovaný vývojár by mal vytvoriť svoje vlastné systémové objekty, ale aj súčasnú úroveň zákazníka - triviálne kompozícia, ktorá má prednosť pred svoju rozvojovú programátor (inak spĺňajú požiadavky). Takáto situácia:
Bv tomto prípade je použitie knižnice - úlohou formátovanie dokumentov, ako je diplom alebo dizertačnej práci musí byť pripravený v súlade s normou. Zákazník predstavil svoje požiadavky a programátor išiel oveľa ďalej.


z kompletnú analýzu dokumentu, jeho montáž v správnom formáte, pracuje s tabuľkami ľubovoľnej úrovni vnorenia, fúzie a rozdelenie buniek vytlačených v ľubovoľnom smere, a tak ďalej.

, polymorfizmus a OOP

lepšie definície polymorfizmus prísť na to, ako sa odkazovať na históriu myšlienke objektovo orientovaného programovania, tak populárne dnes, takže sa často používa, ale nerealizované v podstate hneď. Každý autor má svoj vlastný pojem o začiatku a povahe OOP. Pre každého pozorného čitateľa je tento pojem spoľahlivý a objektívny. Ale do dnešného dňa všetci prijímajú ako nepodmienenú axiómu iba tri polohy:
  • zapuzdrenie;
  • polymorfizmus;
  • dedičstvo.
  • Niektoré pridal ďalšie: abstrakcie, a často je to, a v skutočnosti je hlavný bod sa používa ako základ opísať podstatu OOP.
    To znamená, že myšlienka OOP polymorfné, opisuje jeden navrhnuté odlišne, alebo naopak, ktorý popisuje rôzne, ale na základe rovnakých štyroch polohách. Demokratický princíp nie je typický pre oblasti informačných technológií, ale je treba pochváliť, kombinácie a spolužitie mnohých názorov o rovnakú vec - skutočný polymorfizmus v akcii.

    Populárne definície polymorfizmu

    OOP - ďalšia etapa vo vývoji informačných technológií. stýchto niekoľko sporov, ale základný axiómy a predpisy z hľadiska sémantiky tak rozdielne, nie je hoden pozornosti mimo ich celistvosti.
  • Polymorfizmus - v programovaní je schopnosť poskytovať rovnaké rozhranie pre rôzne základné formy (dátové typy).
  • Polymorfizmus - možnosť objektov mať inú realizáciu.
  • Polymorfizmus je schopnosť z
  • Klasické (od tvorcu C /C ++), "jeden rozhranie -. Mnohým implementáciách"
  • parametrické polymorfizmus prostriedky
  • , polymorfizmus - teória typov
  • odber možný bez zapuzdrenie a dedičný, ako nemožné polymorfizmus bez dedičstvo
  • sme sa zhodujú, že to všetko sa vzťahuje k jednému a to isté: ale forma vyjadrovania myslenia, esencie a významu - nie sú podobné. Ale je tu niečo spoločné.

    Podstata: developer - zákazník

    Klasické rozvojové programy vyžaduje programátor a úlohy (klient, zákazník). Programátor skúma úlohu, formalizuje ju a urobí kód, ktorý vedie k vykonaniu. Zákazník odmietne všetky navrhnuté alebo len jeho časť, čo naznačuje nedostatky, a programátor svoju prácu znova. Tento cyklistický proces riešenia problému naznačuje, že ak je jednoznačne spojené dve úplne odlišné entity:
  • Počítač nedokáže sám vyriešiť problém;
  • vyžaduje program, aby počítač "pochopil" a "vyriešil problém".
  • Cieľ - Pôsobnosť programu zákazníka - Algoritmus "adaptáciu" na schopnostiach oznamovacej oblasti počítača - do pôsobnosti programátora. roledruhý je "adaptácia" požiadavkám počítačovým problémom, a to je moc! Object-Oriented Programming navrhuje abstrakciu. Existujú predmety - to je oblasť zákazníka; je realizácia objektov - to je oblasť programátora. Neexistuje žiadne "technologické" spojenie medzi zákazníkom a developerom. Myšlienka je kardinál, doteraz nie je implementovaná, ale niečo už funguje stabilne.

    okná, gombíky a iné predmety

    História technológie Art Air, Object časopis, Turbo Vision, graf Vision - je história. Len málo ľudí si pamätá tieto implementáciu OOP, ktoré nie sú používané a zabudnutý, ale známe milióny okenné rozhrania Windows ľudí a objektov v prostredí PHP, JavaScript a ďalšie jazyky internetové technológie sa používajú stovky tisíc vývojárov kód je poznať milióny návštevníkov webových zdrojov
    To je asi jediná správna cesta, ktorá mala vypracovať OOP: zapuzdrenie, dedičnosť, polymorfizmus developer, ale nie pre užívateľov. Je charakteristické, že táto pozícia bola dôležitá pre návrh vizuálneho dizajnu (rozhrania) softvérových aplikácií Windows, ako sú Turbo Vision a Graph Vision.
    Pojem základné produkty, ako je napríklad Air Art technológie a časopis objektu, výrazne odlišné. Tu abstraktný objekt bol prvým predchodcom informačnej štruktúry, zapuzdreným na abstraktnej úrovni kód spracovania informácií. Objekty okien, tlačidiel, prvkov vizualizácie boli sekundárne. V prvej verzii (Windows & amp; apod) paradigmy OOP: zapuzdrenie, dedičnosť, polymorfizmus vplyv na úroveň abstraktnépredkov a implementácia kódu bola vytvorená na úrovni každého konkrétneho potomka v odbore dedičstva v súlade s požadovanou štruktúrou a obsahom. V druhej verzii (Air Art Technology a Object Magazine) je dôležitá úroveň abstraktného objektu. Čo sa stane s určitým potomkom - nie je podstatou, hlavnou vecou je to, že jeho dedičstvo zodpovedá požiadavkám všetkých rodičov na koreňovú abstrakciu.

    Objekt a systém objektov: algoritmus

    Ideálny objektovo orientovaný koncept môže manipulovať len s objektovými a objektovými systémami. V moderných programovacích jazykoch pod objektom (trieda) obyčajne rozumieme popisu objektu a inštancie objektu a na použitie popisu objektu jazyky umožňujú programátorovi pracovať so statickými objektmi, zatiaľ čo dynamický objekt - Toto je inštancia popisu s jedinečným obsahom a štruktúrou, ale používa rovnaké vlastnosti popisu (popisu).
    Súčasná prax sa vzťahuje na koncepciu objektu na nástroj, to znamená na programovací jazyk, rozhranie, prístup k databáze, sieťové pripojenie, ale nič nenasvedčuje o záujmoch zákazníka o riešiteľný problém. To je ideálne pre jednoduché OOP: polymorfizmus umožňuje robiť najmä rôzne dizajnové prvky, ale spravovať ich rovnakým kódom. Ale tu nie je o objektoch úlohy, ktoré sa vôbec nepovažujú za objekt pre objektovo-orientovanú analýzu. Programátori si vzali OOP ako prostriedok na zlepšenie kvality a výkonnosti svojej práce, ale nedali svojmu zákazníkovi cestu. Základné pojmy OOP - zapuzdrenie,dedičstvo, polymorfizmus - zostali v oblasti vývoja a neboli transplantované do rozsahu úlohy.

    Objekt a systém objektov: úlohy a riešenia

    Počítač - programátor - úloha. Stredné spojenie je nadbytočné. V ideálnom prípade by mali existovať len dve relatívne závislé kontúry: (počítač - programátor) - úloha. To znamená, že používateľ, zákazník alebo návštevník má nástroj na riešenie svojho problému. Ako implementovaný nástroj je zákazníkom jedno.
    V ideálnom prípade je to len počítač, ktorý dokáže pochopiť, čo zákazník chce, a urobiť to, čo chce. Ako by to vyzeralo: miestny program alebo webové stránky prístupné prostredníctvom prehliadača, špeciálny program distribuovaného spracovania informácií, informačný systém pre zákazníka - na tom nezáleží. Je dôležité, aby medzi úlohou a počítačom neboli žiadne zbytočné prepojenia, ale najprv pochopiteľné a vyriešiť druhú. Na dosiahnutie tohto cieľa musí byť počítač a zákazník prepojené jedným systémom objektov a obsah, štruktúra a obsah každého objektu určuje zákazník a metódy a vlastnosti objektov realizovaných programátorom. Ideálne je, keď práca zákazníka na vytvorenie objektového systému, ktorý potrebuje a pracuje na vykonávaní metód a vlastností týchto objektov, je časovo rozložená. Čím lepšie bude proces implementácie systémových objektov (programátor) z obsahu obsahu (zákazníka). Nič nebráni tomu, aby zákazník a programátor komunikovali v procese riešenia problému, ale je dôležité mať jasné oddelenie sémantiky. Každý musí robiť svoju vlastnú činnosť, programátor nie je povinný zvládnuť oblasťuplatňovanie úlohy a zákazník by nemal porozumieť kódexu a najmä strany by si nemali vzájomne odporúčať, pretože sa netýkajú.

    Tradičné a predmet programovania

    Základné princípy OOP: zapuzdrenie, dedičnosť, polymorfizmus vo forme, v ktorej sa zoznámi a dopytu, čo vedie k výraznému zlepšeniu kvality a spoľahlivosti kódu výrazne urýchľuje programátor a majú mnoho ďalších pozitívne vlastnosti.
    Ale tie veci sú tam: klasické programovanie nie je horší ako na svoje pozície, a mnoho objektovo orientované nápady realizované klasickou kód. Avšak, myšlienka na OOP a rekurzia za následok adekvátne expozície voči prevádzkovateľom syntaxe klasické syntaxe, logiky bežného kód, ktorý nemá žiadny vzťah k objektovo orientovaný štýl písania a myslenia. Zoznamy a turn zmenil predstavu o prvý a posledný prvok poľa, tam bol cyklov "pre každý" model a pomenovanie možnosti, využitie a výkonnosť stal sa dokonca populárnejší ako kedykoľvek predtým. V skutočnosti je fakt, že premenné stratila ich "clear" osoba (typ premennej je možné meniť podľa potreby a neopisuje premennou potreby) hovorí, že klasické, v skutočnosti už dlho objektovo orientovaný a uznávané základné princípy OOP: zapuzdrenie , dedičnosť, polymorfizmus ako myšlienky, ktoré majú významný význam.

    ako základ, objektu alebo systému

    Abstrakcia ako základný koncepčný ustanovenia OOP, bez ohľadu na to, kde je oblasť zodpovednosti (realizácia)objektov - v prvom abstraktným objektu alebo v určitom potomkov - ponecháva otvorenú otázku: Kde začať s objektom alebo systému?
    Ak je základom pre uvedenie objektu, bude to nikdy nestane systém, pretože systém bude v ňom, a on bude veľmi špecifický tvrdo skoro. Máte problémy s abstrakciou: počiatočnou objekt presne vystihuje základný problém treba riešiť, že nie je prevedený na inú úlohu. Ak je základom uvedenia systému objektov, potom systému systémov. Je ťažké si predstaviť vo vzťahu k konkrétnej úlohe a od ktorej sa začať rozvíjať - je tiež ťažké pochopiť. Skrátka a dobre, OOP zo svojich polymorfizmus rozdiely v povahe, formy vykonávania, skutočný počet parametrov vo funkciách robí predstavu o systéme, ktorý je na začiatku, as
  • z riešení tohto problému (napr menu);
  • o počiatočných podmienkach (aplikácia úlohy v rôznych podmienkach, údaje);
  • ​​
  • o spôsoboch prevádzky (testovanie, konfigurácia, práca).
  • To je ale ako nedal žiadny dôvod k systémovým objektom úloh na báze. Často stačí definovať jeden jediný objekt.

    História procesu riešenia problému

    Medzi najdôležitejšie zásady OOP: polymorfizmus a abstrakciu - prioritný cieľ ako počiatočný systémové objekty. V spore, ktorý by mal byť skôr, kuracie alebo vajce, víťazstvo tu dostane fajčiar. Nie je pochýb o tom, že by všetko malo začínať abstraktným objektom, nie však systémom objektov. aledaný časový faktor a pripojiť ju do úrovne jednotlivých objektov, počnúc od prvého abstraktne, potom dal kontroverzný myšlienku na začiatku riešenia a objekt, a systém je jediná rozumná. V prípade, že klasické poňatie programovania na riešenie problému zmení súbory obsahu databázy a ďalšie zmeny, koncept OOP polymorfizmus, zapuzdrenie a časový faktor meniaci obsah, štruktúru a vlastnosti systémových objektov problému. Programátor v OOP má najmenší záujem o koncept súboru, databázy, algoritmu - to je hlavne tu programátor myslí objekty, ale objekty existujú v čase a zmeny v priebehu dosiahnutia požadovanej.
    Teda, na začiatku je predmetom objektov systému a logika systému - časová os: štart úlohu vytvorenie prvý predmet, vstup alebo zberu dát, tvoria ďalší predmet, avšak nič nebráni tomu, prvý namiesto ďalšieho rozhodnutia. Každá úroveň objektov funguje ako nezávislý systém objektov, to je jeden objekt, ale v kontexte iniciovaného procesu a časová hodnota je systém objektov v časovom meradle. Pre plnú implementáciu polymorfizmus OOP, dedičnosť a časový faktor kombinovať poskytnúť dynamický prvý, ktorá nielenže môže časom zmeniť, ale aj produkovať položky, ktoré nie sú poskytované developerom generovaného v priebehu procesu zaradenia, premieta zákazníka.

    Skutočný polymorfizmus OOP, príklad

    Zložitosť úloh, ktoré sú silné OOP, nie je porovnateľná s komplexnosťou úloh, ktoré sú k dispozícii klasickému hláskovaniuprogramy. Samozrejme, aby vyriešiť akýkoľvek problém, je vždy k dispozícii v obvyklým spôsobom, ale je otázkou, koľko to bude stáť čas a úsilie, často robí výsledok bezcenné. Nie je to tak dávno vyvinuli knižnicu PHPOffice /PHPWord, ale iba na jeho vlastnosti takmer vždy nutné vytvoriť vlastné systémové objekty. Napríklad jednoduchý súbor * .docx:
    je zip archív mnohých súborov a priečinkov balíka Office Open XML (OpenXML, OOXML). Každý súbor je napísaný v značkách XML a pri pridávaní, zmene a odstraňovaní písmen, slov, tabuliek, zoznamov a ďalších. Položka obsahu súboru začína byť sled značiek, ktoré nie sú vždy obsahujú kompletné prvky, jeden prvok často napísané sadu značiek. Ak odošlete tento súbor ako sled tagov, objaví sa zaujímavý obrázok:
    Je ľahké vidieť, že prvý a jediný odsek dokumentu je reprezentovaný množstvom značiek. Pokiaľ ide o tabuľku a jej vstavaný tabuľke vyššie súpis všetkých položiek vzdoruje vnímania, a zároveň cenovo dostupné objektovo orientované aplikácie. V skutočnosti je obrázok zelený - je to výstupná značka testu, žltá - parametre a typ značky, béžová - obsah. Vytvorené objekty sú zamerané na obrábanie. Iba operácie otvárania súboru dokumentu, jeho formátovania a zaznamenávania sú prístupné osobe. Riešenie je jednoduché a praktické, ale realizácia je zameraná skôr na počítači, než sa človek spôsobí spustiteľného funkčné trojrozmerné a zložité vzťahy medzi objektmi.

    Stav oblasti OOP

    Vývoj systémov riadenia lokalít, technológiíkonfigurácia a správa serverov, skúsenosti vo vývoji dynamických webových stránok do objektovo orientovaného programovania prístupný všetkým. Problém je v tom, ako zmeniť svoje myslenie a zvyknúť si myslieť na úrovni objektov, ale nie v súvislosti s sekvenčne spustiteľný kód. Typicky, prechod od klasického programovania objektovo orientované trvá dva až tri mesiace, ale náklady kompenzované so záujmom. Potenciál moderných programovacích jazykov, najmä PHP a JavaScript, uspokojí developer. Moderné OOP - polymorfizmus, dedičnosť a možnosť vlastností tvorby objektov - pohodlné a praktické, ako je syntaxe a pomocné nástroje poskytujú pohodlie a efektivitu kódu.

    objektu aplikácie myšlienky

    Koľko bude trvať klasickú programovanie a ako rozvíjať PLO - je ťažké povedať. Zdá sa, že vývojári nástroje neplánujeme vziať do úvahy kontext (používateľa zákazníka) spotrebiteľa. Nástroje OOP - polymorfizmus, dedičnosť, zapuzdrenie a abstrakcie - vedená developera. Moderné informačné systémy a webové zdroje inklinujú odrážať realitu, aby sa zabezpečilo fungovanie reálnych objektov a vytvoriť prostredie pre svoju prevádzku, tak jednoduché, že bude k dispozícii pre spotrebiteľov, od programovania, plne ponorený v oblasti svojej pôsobnosti.

    Súvisiace publikácie