Objektovo orientovaný prístup k programovaniu: koncept, aplikácia a vývoj

Prvé programovacie jazyky boli nevyhnutné jazyky alebo strojové inštrukcie (kódy). Pozostávali z binárneho kódu, ktorý sa líšil v závislosti od stroja. Množina možných akcií pre tieto low-level "jazykov" bol malý, pretože každá inštrukcia stroja vykonať nejakú akciu (pridávanie, kopírovanie slovu stroj do registra, prechod na ďalšiu predvoľby). Samozrejme, pre pohodlie, programátori vyvinuli pre tieto strojové tímy skupinu písmenových analógov a tento spôsob komunikácie so strojom "železo" sa nazýva jazykový assembler.

Assembler

Jazyk assemblera je jazykom nízkej úrovne. Jeho implementácia a funkcie sa líšia od stroja až po stroj, od procesora po procesor, tj závisí od platformy. Ale esencia assemblera na každom stroji je jedna: príkazy pre zostavovateľov priamo zodpovedajú podobným príkazom stroja alebo jeho sekvenciám. Zložitosť pri štúdiu programovania na assembleri je, že programátor je nútený študovať priradenie jazykových smerníc jednotlivo pre každý stroj, čo zvyšuje prahovú hodnotu vstupu pri zmene procesora.


Najslávnejšia implementácia assemblera:
  • Borland Turbo Assembler (TASM).
  • Microsoft Macro Assembler (MASM).
  • Watcom assembler (WASM).
  • A86.
  • Jazyky na vysokej úrovni

    Pri vývoji procesorov bolo potrebné viac všestranných a široko používaných nástrojov na interakciu s počítačom. Postupom času sa strojové kódy stali veľmi dlhými a nepohodlnýmipochopenie, takže bolo rozhodnuté, že bude fungovať tím, intuitívni ľudia, číta a zapisuje kód. Prvý jazyk na vysokej úrovni pre počítač s takýmto prístupom sa stal Fortranom. Strojovo čitateľné tím obrátil na: otváranie, zatváranie PRINT, že na prvý pohľad zdá zablokovať if štruktúr, ako či potom - inde.
    Okrem toho je potrebné poznamenať, že Fortran po odchode punchových kariet do historického odpadu začal podporovať štrukturálne programovanie.

    Štruktúrované programovanie

    V roku 1960 - skoro 1970 začal vývoj ďalších progamovacích - štruktúrované programovanie jeden krok k objektovo orientované prístup k dizajnu. Po práci Edgar Dijkstra "V nebezpečenstve obsluhy GOTO» vývojárom potom príde pochopenie, že práca akejkoľvek aplikácie možno opísať iba tri kontrolné štruktúry:


  • sekvenciu;
  • rozvetvenie;
  • .
  • Operátor goto bol odvtedy uznaný ako nadbytočný. Toto je operátor, ktorý vám umožňuje prejsť na ľubovoľný blok programu. A začiatočníci niekedy sa zdá, že nie je nič jednoduchšie, než použiť operátor goto v niektorých častiach kódu, a nie vymýšľať ďalšie vetvenia a cyklov. Ale v skutočnosti, využitie služby skôr či neskôr vedie k tomu, že program sa stane "špagety kódu." Tento kód nemožno tvrdiť, bezpečne meniť, a zo všetkého najhoršie, je ťažké pochopiť, ďalšie vývojárov, ktorí nahradia autor kódu. To je obzvlášť nebezpečné pri rozvoji podnikania, kde sú navrhnutéveľké databázy na tisíce riadkov kódu. Fluidnosť je vždy a je ťažké zaobchádzať so zlým kódom, najmä pre programátora prichádzajúceho do spoločnosti.

    Programovací jazyk C

    Rozkvet štruktúrovaného programovania neoddeliteľne spojená s programovacom jazyku C. Tento jazyk bol napísaný v jazyku Dennis Ritchie a Ken Thompson a stal sa zdrojový jazyk vo vývoji operačného systému UNIX. To sa stalo základom pre mnoho moderných operačných systémov, ako je GNU /Linux, FreeBSD, MacOS, POSIX a mnoho ďalších.
    Pretože jazyk C konštrukcia podobná strojových inštrukcií, že sa šíri hlavne v rôznych aplikačného softvéru pre celý rad zariadení, od grafickej karty a operačné systémy pre rakety a superpočítače. A syntax sa navždy stal základom mnohých moderných programovacích jazykov (C ++, C #, Java, Objective-C).

    objektovo orientované programovanie (OOP)

    Program pokračoval byť komplikované, a nutnosť paradigmy je pochopenie nutnosti objektovo orientovaného prístupu k informačným technológiám. Namiesto bežnej práce s počítačom sa zobrazujú pomocou konzoly grafické aplikácie. Počítač nie je teraz veľmi špecializovaným zariadením na vedecké a vojenské výpočty, ale nástroj, ktorého schopnosti sa pohybujú od automatizácie po komunikáciu s priateľmi. Hlavná stavebná jednotka pri vývoji objektovo orientovaného prístupu je ohlásená trieda. Trieda je abstraktný typ údajov vytvorený programátorom. Ide o schému alebo zmluvu, ktorá opisuje polia a metódy objektov, ktoré budúvytvorené podľa typov tejto triedy.
    Napríklad človek, auto, oddelenie je abstrakciou, takže ho možno označiť ako triedu. Ivan, biela "Skoda" s číslami nn123 prevádzkové oddelenie - zvláštne zástupcovia týchto abstrakciou, ktorá je v jazyku objektovo orientovaného prístupu k programovaniu a ponúka dátové triedy. Úlohou developera je popísať abstraktné a konkrétne predmety reálneho sveta v jazyku OOP. Popis triedy je implementovaný v popise polí a metód.

    pole

    Paul - sú premenné, ktoré Hodnoty, ktoré charakterizujú prácu tejto triedy. Napríklad ak napíšeme triedu "auto" pre počítačové hry, môžeme definovať pre neho nasledujúce polia:

    trieda Car
    {
    string značku = "Hunday" Solaris ";
    reťazec color = "žltý",
    dvojnásobná rýchlosť = 0
    , /* zvyšok kódu aplikácie * /
    }

    Zapuzdrenie

    pole môžu zmeniť ich hodnoty v priebehu programu, ak ho programátorom. Ak autor nechce pole boli k dispozícii mimo školy, a iné aplikácie (užívateľa) by mohlo zmeniť význam,, zhrnuté údaje, ktoré z nich robí dostupné pomocou kľúčových slov v súkromí, chránené. Yaksch v rovnakom ihrisku by mali byť k dispozícii v celom programe, predtým dali prístup verejnosti.

    Napríklad môžeme všetci trieda ihrisko verejnosti

    trieda Car
    {
    verejné reťazec značky
    verejné reťazec farby,
    verejné dvojnásobná rýchlosť,
    *
    zvyšok programového kódu
    *
    }

    V tomto prípade je prístup k tieto polia nebudú obmedzené. V rozhraní môžete náhodne alebo úmyselne zmeniť dôležité údaje v poliach, ktoré súpokračovať v správnej ovplyvniť celý program

    & lt; skriptu asynchrónny = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">

    & lt; script & gt; (adsbygoogle = window.adsbygoogle || []) stlačte ({});
    trieda MainClass
    {
    public void Main ()
    {
    auto = nový automobil ();
    car.colour = "Červená";
    /* zvyšok kódu aplikácie * /
    }
    }

    , aby sa zabránilo nechceným zmenám dát, developer je zapuzdrí. V prípade farby auta, namiesto verejnosti, musíte písať súkromné. Zmena farby priamo nebude možná.

    Metódy

    Metódy sú funkcie, ktoré vám umožňujú pracovať s políčkami triedy alebo s niektorými inými údajmi. Rovnako ako všetky funkcie v procedurálnych programovacích jazykoch, berú dáta a môže buď vrátiť výsledok výpočtov a nevracať sa (napr zobrazenie niečo na konzole). Napríklad:

    trieda automobil
    {
    verejné reťazec značka = "Hunday" Solaris "
    verejné reťazec farba =" žltá ",
    verejné dvojnásobná rýchlosť = 0;

    /* Tu sú riešenia «pohon», ktorá sa prenáša logické variabilné whatIsTrafficLight (hodnoty iba falošné - červené svetlo, alebo pravda - zelené svetlo, je možné ísť) * /
    public void pohonu (bool whatIsTrafficLight )
    {
    , ak (whatIsTrafficLight == true)
    {
    , rýchlosť = rýchlosť + 40,
    ,}
    iný
    {
    , rýchlosť = 0;
    }
    }

    }

    v dôsledku toho, s použitím metódy jednotky zmeníme rýchlosť triedy


    lt "stroj" .; script type = " text /javascript "& gt;
    var blockSettings = {blockId:" RA-70350-45 "renderTo" yandex_rtb_R-a-70350 - 45 ", asynchrónne: ! 0},
    , ak (document.cookie.indexOf ("abmatch =") väčšie alebo rovné 0) blockSettings.statId = 70350,
    ! Funkcia (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (funkcia () {Ya.Context.AdvManager.render (blockSettings)} ), e = b.getElementsByTagName ("scenár") , d = b.createElement ("scenár"), d.type = "text /javascript", d.src = "//an.yandex.ru/systém /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to, this.document ,!" yandexContextAsyncCallbacks ");

    polymorfizmus

    druhej "pilier" rozvoj objektovo orientované prístup - polymorfizmus. Bjarne Stroustrup je tvorca jazyka C ++, definícia polymorfizmus formuloval takto: "Jeden rozhranie - mnoho implementácií." Stručne povedané, polymorfizmus - príležitosť vytvoriť abstraktné triedu, ktorá popisuje celkový dizajn štruktúry, a z nej vytvoril sú odvodené triedy, ktoré implementujú žiadne mechanizmy. Napríklad pri vytváraní hernej charakter, pokiaľ ide o objektovo orientovaného prístupu by bolo logické, aby najprv vykonať abstraktné class Osoba, a nechať ho vytvoriť zvláštne triedy: Archer, liečiteľ, bojovník a tak ďalej.

    Alebo príklad s autom. Ak budeme pracovať jeden počítač s viacerými polí a metódami, mali sme bez problémov ručne zmeniť niektoré hodnoty v kóde. Ale koľko takýchto strojov môže byť? Alebo napríklad používatelia v sociálnej sieti? Každý má svoje meno, rodinný stav, foto, mnoho významov, odkazy na iné stránky na používateľa a tak ďalej. A ak sa vývojári rozhodnúť, že sociálne siete redesign a niektoré užívateľské nastavenia, upraviť alebo odstrániť, a potom s týmto prístupom Tam je veľa práce. Tento problém rieši objektovo orientovaný prístup. Triedy nie sú vytvorené pre každý konkrétny predmet, ale pre abstraktnú triedu a z nej pôvodnesa vytvorili kurzy dedičov. Rovnako ako zapuzdrenie, polymorfizmus je druhým najdôležitejším pravidlom OOP.

    Dedičstvo

    Dedičstvo je ďalším pravidlom pri použití objektovo orientovaného prístupu. Spočíva v schopnosti dedičskej triedy využívať funkcie materskej triedy. Napríklad, ak chceme mať v našej flotile motocykel, potom nie je potrebné písať rovnaké vlastnosti pre novú triedu. Namiesto toho môžete povedať, že motocykel je trieda dediča z auta. Potom je možné použiť podobné polia a metódy stroja v triede motocykla, napríklad značka, farba, rýchlosť. V kóde dedičstva je uvedené nasledovné:

    trieda Motocykel: Auto
    {
    /* zvyšok programového kódu * /
    }
    Polia a metódy triedy-rodič auto sú k dispozícii pre použitie v triede-dediča motocykla. Stručne povedané, dedičstvo je mechanizmom na opätovné použitie kódu a jeho cieľom je pohodlné a logicky kompetentné rozšírenie programu. Tiež dedičstvo pomáha dodržiavať zásadu DRY (Neopakujte sa). Podľa tejto zásady by kód nemal mať opakujúce sa stránky, pretože vytvára zbytočné zaťaženie pri zostavovaní a vykonávaní programu. Ak sa v kóde nachádzajú opakujúce sa oblasti, musí sa optimalizovať - ​​opakovať to v samostatných metódach a spôsobiť to podľa potreby; aplikujte dedičstvo na logicky podobné objekty, ktoré majú rovnaké polia a metódy.

    Zhrnutie

    Pojem objektovo orientovaného prístupu k programovaniu je už viac ako štyridsať rokov a teraz je najžiadanejšou cestou rozvoja (s výnimkoušpecifické oblasti, napríklad vývoj softvéru pre kontrolórov, kde dominuje jazyk C). Najdôležitejšie paradigmy OOP sú:
  • dedičstvo.
  • Polymorfizmus.
  • Zapuzdrenie.
  • Tak skúmanie týchto výkonných nástrojov, moderné developer mohol napísať rýchlo podporovaný, vizuálne príjemné a upravený kód, ktorý mnoho rokov bude podporovať podnikateľské zámery, prinášať radosť hráčom k riešeniu sociálnych problémov alebo poskytovať ľudia komunikujú po celom svete.

    Súvisiace publikácie