Objektově orientovaný přístup k programování: koncept, aplikace a vývoj

První programovací jazyky byly imperativní jazyky nebo strojní instrukce (kódy). Jednalo se o binární kód, který se lišil v závislosti na stroji. Množina možných akcí pro tyto low-level „jazyků“ byl malý, protože každá instrukce stroje provést nějakou akci (přidávání, kopírování slovu stroj do rejstříku, přechod na další předvolby). Samozřejmě, že pro pohodlí programátorů vyvinula unikátní sadu písmen těchto strojových instrukcí a tak komunikovat se strojem „železa“ s názvem assembleru.

Assembler

Jazyk assembleru je jazykem nízké úrovně. Jeho implementace a funkce se liší od počítače po stroj, od procesoru po procesor, tj. Závisí na platformě. Ale podstata shromáždění na jednom stroji, montážní týmy přímo odpovídají stejné příkazy stroje nebo sekvencí. Obtíže při učení programování v assembleru je, že programátor musí naučit směrnic jazyka o určení individuálně pro každý počítač, který zvyšuje práh vstupu změnou procesoru.


Nejznámější realizace montáže:
  • Borland Turbo Assembler (TASM).
  • Microsoft Macro Assembler (MASM).
  • Watcom assembler (WASM).
  • A86.
  • jazyky na vysoké úrovni

    S rozvojem procesory Existuje potřeba více univerzální a široce používaných nástrojů pro interakci s počítačem. Postupně se strojní kódy staly velmi dlouhými a nepohodlnýmipochopení, takže bylo rozhodnuto řídit týmy, intuitivní lidi, číst a psát kód. Prvním jazykem na vysoké úrovni pro počítač s takovým přístupem se stal Fortran. Strojové příkazy jsou čitelné: OPEN, CLOSE, PRINT, IF operátor a IF THEN-ELSE poprvé se objeví zde.
    Navíc je třeba poznamenat, že Fortran po odchodu děrovacích karet do historického odpadu začal podporovat strukturální programování.

    Strukturální programování

    V šedesátých letech - počátkem sedmdesátých let začíná vývoj dalšího paradigmatu programování - strukturální programování, další krok směrem k objektově orientovanému přístupu k návrhu. Po práci Edgar Dijkstra „V nebezpečí obsluhy GOTO» vývojářům pak přijde pochopení, že práce jakékoli aplikace lze popsat pomocí pouze tři kontrolní struktury:


  • sekvenci;
  • větvení;
  • cyklus.
  • Operátor goto byl od té doby uznán jako nadbytečný. Jedná se o operátor, který vám umožní jít do libovolného bloku programu. A pro začátečníky se někdy zdá, že v určitých částech kódu není nic jednoduššího než použití operátora goto, aby se nevyvinuly další větve a smyčky. Ve skutečnosti však použití tohoto operátora dříve či později vede k tomu, že se program změní na "špagetový kód". Takový kód nelze udržovat, bezbolestně modifikovat a horší, je těžké vnímat další vývojáře, kteří nahradí autora kódu. To je obzvláště nebezpečné při rozvoji podniků, kde jsou navrženyvelké databáze na tisících řádků kódu. Personál je vždy k dispozici a obchod se špatnou kódu je obtížné, a to zejména ve společnosti přišel programátory.

    Programovací jazyk C

    Rozkvět strukturovaného programování neoddělitelně spojena s programovacím jazyce C. Tento jazyk byl napsán v jazyce Dennis Ritchie a Ken Thompson a stal se zdrojový jazyk ve vývoji operačního systému UNIX. To se stalo základem pro mnoho moderních operačních systémů, jako je GNU /Linux, FreeBSD, MacOS, POSIX a mnoho dalších.
    Protože jazyk C konstrukce podobná strojových instrukcí, že se šíří hlavně v různých aplikačního softwaru pro celou řadu zařízení, od grafické karty a operační systémy pro rakety a superpočítače. Syntax navždy stal základem pro mnoho moderních programovacích jazyků (C ++, C #, Java, Objective-C).

    objektově orientované programování (OOP)

    Program pokračoval být komplikované, a nutnost paradigmatu je pochopení nutnosti objektově orientovaného přístupu k informačním technologiím. Namísto obvyklého práce s počítačem konzole objeví grafické aplikace. Počítač je již vysoce specializované zařízení pro vědecké a vojenské výpočtů a schopností nástrojů, které sahají od obchodního automatizaci pro komunikaci s přáteli. Hlavní konstrukční jednotka při vývoji objektově orientovaného přístupu je vyhlášena třídou. Třída je abstraktní datový typ vytvořený programátorem. Tento systém nebo smlouva, která popisuje polí objektů a metod, které budouvytvořené podle typů této třídy.
    Například člověk, auto, oddělení je abstrakcí, takže ho lze označit jako třídu. Ivan Ivanovich, bílý "Skoda" s číslem nn123 operačním oddělením - to jsou konkrétní představitelé těchto abstrakcí, tedy mluvit objektově orientovaný přístup k programování je předmětem těchto tříd. Úkolem developera je popsat abstraktní a konkrétní objekty reálného světa v jazyce OOP. Popis třídy je implementován v popisu polí a metod.

    Pole

    Pole jsou proměnné, tj. Hodnoty, které charakterizují práci této třídy. Například pokud napíšeme třídu "auto" pro počítačové hry, můžeme definovat pro něj následující pole:

    třída Car
    {
    string značku = "Hunday" Solaris „;
    řetězec color = "žlutý",
    dvojnásobná rychlost = 0
    , /* zbytek kódu aplikace * /
    }

    Zapouzdření

    pole mohou změnit jejich hodnoty v průběhu programu, pokud jej programátorem. Pokud autor nechce pole byly k dispozici mimo školu, a jiné aplikace (uživatele) by mohla změnit jejich význam, ‚shrnuje údaje, které z nich dělá dostupné pomocí klíčových slov v soukromí, Pokud ve stejném hřišti by měly být k dispozici v celém programu, předtím dali přístup veřejnosti.

    Například můžeme všichni třída hřiště veřejnosti

    třída Car
    {
    veřejné řetězec značky
    veřejné řetězec barvy,
    veřejné dvojnásobná rychlost,
    *
    zbytek programového kódu
    *
    }

    V tomto případě je přístup k tato pole nebudou omezena. V rozhraní můžete omylem nebo úmyslně změnit důležité údaje v polích, kterépokračovat ve správné ovlivnit celý program

    & lt; skriptu asynchronní = „//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">

    & lt; script & gt; (adsbygoogle = window.adsbygoogle || []) stisknout ({});
    třída MainClass
    {
    public void Main ()
    {
    auto = nový vůz ();
    car.colour = "červená";
    /* zbytek kódu aplikace * /
    }
    }

    , aby se zabránilo nechtěným změnám dat, developer je zapouzdří. V případě barvy auta, místo veřejnosti, musíte psát soukromě. Změna barvy přímo nebude možná.

    Způsob

    Způsob

    - nástroj, který umožňuje pracovat s třídou okraje nebo s některými dalšími údaji. Stejně jako libovolná funkce v jazycích procedurálního programování, berou data a mohou buď vrátit výsledek výpočtů, nebo nevracet (například něco na konzole zobrazovat). Například:

    třída automobil
    {
    veřejné řetězec značka = "Hunday" Solaris "
    veřejné řetězec barva =" žlutá „,
    veřejné dvojnásobná rychlost = 0;

    /* Zde jsou uvedena řešení «pohon», která se přenáší logické variabilní whatIsTrafficLight (hodnoty pouze falešné - červené světlo, nebo pravda - zelené světlo, je možné jet) * /
    public void pohonu (bool whatIsTrafficLight )
    {
    , pokud (whatIsTrafficLight == true)
    {
    , rychlost = rychlost + 40,
    ,}
    jiný
    {
    , rychlost = 0;
    }
    }

    }

    v důsledku toho, s použitím metody jednotky změníme rychlost třídy


    lt "stroj".; script type = " text /javascript "& gt;
    var blockSettings = {blockId:" RA-70350-45 "renderTo" yandex_rtb_R-a-70350 - 45“, asynchronní: ! 0},
    , pokud (document.cookie.indexOf ("abmatch =") větší nebo rovno 0) blockSettings.statId = 70350,
    ! Funkce (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (funkce () {Ya.Context.AdvManager.render (blockSettings)} ), e = b.getElementsByTagName ("scénář") , d = b.createElement ("scénář"), d.type = "text /javascript", d.src = „//an.yandex.ru/systém /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to, this.document,!" yandexContextAsyncCallbacks „);

    polymorfismus

    druhé "pilíř" rozvoj objektově orientované přístup - polymorfismus. Bjarne Stroustrup je tvůrce jazyka C ++, definice polymorfismus formuloval takto: „Jeden rozhraní - mnoho implementací.“ Stručně řečeno, polymorfismus je schopnost vytvořit abstraktní třídu, která popisuje celkový návrh struktury a od ní jsou již vytvořeny třídy derivátů, které implementují chybějící mechanismy. Například při vytváření herní charakter, pokud jde o objektově orientovaného přístupu by bylo logické, aby nejprve provést abstraktní class Osoba, a nechat ho vytvořit zvláštní třídy: Archer, léčitel, válečník a tak dále.

    Nebo příklad s autem. Pokud pracujeme s jedním strojem, s několika polí a metodami, není nutné, abychom manuálně změnili několik hodnot v kódu. Ale kolik takových strojů může být? Nebo například uživatelé v sociální síti? Každý má jméno, příjmení, rodinný stav, fotoalbum, obrovský počet hodnot, odkazy na jiné stránky, ostatní uživatele a podobně. A pokud se vývojáři sociálních sítí rozhodnou provést redesign a některé uživatelské nastavení mohou být změněny nebo odstraněny, bude s tímto přístupem hodně práce. Řeší tento problém objektově orientovaný přístup. Třídy nejsou vytvořeny pro každý konkrétní objekt, ale z abstraktní třídy a od ní zpočátkudědicové třídy jsou vytvořeny. Jako zapouzdření je polymorfismus druhým nejdůležitějším pravidlem OOP.

    Dědictví

    Dedičnost je dalším pravidlem při použití objektově orientovaného přístupu. Spočívá v schopnosti třídy dědiců používat funkce mateřské třídy. Pokud například chceme mít motocykl v naší flotile, pak není nutné psát stejné vlastnosti pro novou třídu. Místo toho můžete říci, že motocykl je třída-dědic z auta. Potom je možné použít obdobná pole a metody stroje v třídě motocyklu, například značka, barva, rychlost. V kódu dědičnosti je uvedeno:

    třída Motocykl: Auto
    {
    /* zbytek programového kódu * /
    }
    Pole a metody vozu třídního rodiče jsou k dispozici pro použití v motocyklu třídy dědic. Stručně řečeno, dědičnost je mechanismus pro opětovné použití kódu a je zaměřen na pohodlné a logicky kompetentní rozšíření programu. Také dědictví pomáhá dodržovat zásadu DRY (Do not repeat yourself). Podle této zásady by kód neměl mít opakující se stránky, neboť při sestavování a provádění programu vytváří zbytečnou zátěž. Pokud v kódu existují opakující se oblasti, je třeba je optimalizovat - opakujte je v samostatných metodách a způsobte je podle potřeby; použijte dědičnost pro logicky podobné objekty, které mají stejné pole a metody.

    Shrnutí

    Pojem objektově orientovaného přístupu k programování je již více než čtyřicet let a nyní je nejžádanějším způsobem rozvoje (kroměspecifické oblasti, například vývoj softwaru pro regulátory, kde dominuje jazyk C). Mezi nejdůležitější paradigma PLO patří:
  • Dědictví.
  • Polymorfismus.
  • Zapouzdření.
  • Tak zkoumání těchto výkonných nástrojů, moderní developer mohl napsat rychle podporovaný, vizuálně příjemné a upravený kód, který mnoho let bude podporovat podnikatelské záměry, přinášet radost hráčům k řešení sociálních problémů nebo poskytovat lidé komunikují po celém světě.

    Související publikace