Zapuzdrenie je balenie dát a funkcií do jednej zložky. Zapuzdrenie, polymorfizmus, dedičnosť: vlastnosti

Koncom 80. rokov minulého storočia sa v programovaní nič zásadne nezmenilo. Bolo veľa jazykov, veľa diskusií a tam bol Turbo Pascal 5.5, a pri dodaní balíka bolo niekoľko divných súborov a niekoľko nekonvenčných štruktúr v syntaxe.

Pravdepodobne objektovo orientované programovanie je spôsobené objavením sa neznámeho umelca a možno málo, ale obzvlášť veľkú hodnotu, myšlienka kombinácie kódu a údajov v týchto vzdialených časoch nenastala. Termín "zapuzdrenie" bol spojený slabo a nepriamo.

Štruktúry, funkcie a postupy

Už v prvých verziách programovacích jazykov predtým, než sa objavili prvé databázy, bolo úplne jasné, že toto nie je číslo a nie reťazec symbolov, ale niečo zmysluplné. Nech je to premenná "pult" v smyčke alebo tri riadkové premenné "priezvisko", "meno", "patronymický", ale toto je vždy bezprostredne zmysluplné.

"Počítadlo" sa vždy nachádza po cykle a pracuje v ňom. A vedľa seba budú oznámené "priezvisko", "meno", "patronymický" a ich účasť v mnohých častiach kódexu bude zdieľaná. Tam, kde budú použité nezávisle, vo všeobecnosti budú mať jeden zmysel. Funkcie a postupy sa pôvodne objavili ako bežné kódy. Ich použitie sa pôvodne predpokladalo na iných miestach programu. Ich vzhľad v programe podmieňoval opakovanie blokov tých istých akcií. Odstránenie opakovania vo forme funkcie alebo postupu zjednodušuje miesto opakovania, znižuje množstvo kódu a zjednodušujeladenie.
Toto nebolo objektovo orientované programovanie, ale klasický štýl kódovania od samého začiatku jeho vývoja sa zaoberal zovšeobecňovaním údajov, vytváraním štruktúr a funkčných oblastí kódu.

Dôvody na začatie zapuzdrenia

Zapuzdrenie v programovaní sa začalo dlho pred OOP. Bolo to v hĺbke klasického štýlu, nebralo do úvahy funkčné programovanie, štrukturálne a všetko ostatné, ktoré sa snažili nájsť cestu do budúcnosti. Každý prekladač a tlmočník jazyka sa usilovne uberal všetko nové v syntaxe a ponúkol vývojárom možnosti implementácie sémantiky. Informácie neboli nikdy statické, len programovanie je stále spokojné s jeho formalizovanou verziou. Aj keď je to striktne formalizované, informácie poskytujú pracovný kód, ktorý je s ním vždy spojený. Informácie nemôžu byť nikdy statické.

Najzákladnejší príklad zapuzdrenia, ktorý sa už dlho zachoval až dodnes. Tri premenné "priezvisko", "meno", "patronymic", nech už sú kdekoľvek, vždy vyžadujú funkcie pridania, úpravy, mazania. Okrem toho tieto premenné poskytujú množstvo konkrétnych ľudí, to znamená veľa kópií:
  • Ivanov, Ivan, Ivanovič;
  • Petrova, Irina Vasylivna;
  • Kukushkin, Polina, Grigorievna;
  • a abstraktná trieda
  • "priezvisko", "meno", "patronymický";
  • a tri večné funkcie
  • pridávajú;
  • zmena;
  • odstrániť.
  • Takéto návrhy na akejkoľvek úrovni (adresy, pracovné miesta, personálne obsadenie, plán výroby)môžete si myslieť veľa. A zložitosť realizácie iného dizajnu bude extrémne dlhá.

    Životnosť inštancie zapuzdrenia

    Zapuzdrenie je údaj a kód.
  • Zapuzdrenie slov.
  • latinská verzia - v kapsule.
  • Slovo "kapsula" je to, čo to znamená. To, čo mnoho jazykov a vývojári dodumaly (verejné, chránené, súkromná) - samostatné téma a obsah alebo zapuzdrenie relatívne alebo prymenytelnoe postoj. Vo všeobecnosti je inštancia jednoducho variantom (snaps, moments) dát a tieto tri metódy žijú navždy. Kód ako informačný filter "ponúka" živé exempláre, pretože je pre všetkých rovnaká, a mimochodom, ak:
  • kód "stála";
  • označuje najjednoduchší nemenný účinok.
  • Ale druhá kópia môže "hodiť" zameranie "V prípade, že vzorka pripisovaná personálnej spoločnosti, obzvlášť dôležitú v sade kópií bude režisér a účtovné. Ostatní môžu zostať v normálnej forme." Riaditeľ a účtovník môžu mať svoje vlastné kódy, čiže ich funkcie. To znamená, že životnosť inštancie nie je vždy určená funkcionalitou troch magických slov:
  • add;
  • zmena;
  • odstrániť.
  • V prípade, že príklad uvedený prvý pilotovaný let do vesmíru, tucet kandidátov na prvý kozmonaut bude veľa zvláštne funkčnosti, dobrá stovka ľudí (kópia) bude pre nich dohliadať zvláštne, napriek tomu existuje veľa možností pre profesionálov, ktoré budú veľmi mnoho špeciálnych funkcií.

    Na začiatku OOP

    "Musíme naliehavo niečo zmeniť" - myslel rad vývojárov, aAko dobrý príklad som navrhol pracovať s objektmi na Turbo Pascal 6.0 Professional. Toto nie je ideálna ponuka, ale veľmi vysoká kvalita je jednoduchá a efektívna.

    Uvádzanie že "zapuzdrenie, polymorfizmus, dedičnosť - je základom objektu, dostať dobrý štart polymorfizmus poskytuje potrebnú dynamiku, pretože inštancia môže mať rôzne funkcie To by sa nejako .." legitimizovať "nástroj dedičnosť. poskytuje príležitosť na zamyslenie jednotnosť v dome vybudovať rodokmeň formalizovaný informácií sa zdá ťažké Uvedenie, že dáta zapuzdrenie -... jednoduchú integráciu dát a kódu, všetko je jednoduchšie a tam je skvelý koncept objekt - dátový a Inštancia objektu - je to len dáta, ktorá má prístup ku kódu. kópia môže byť príliš veľa, ale kód pre nich je vždy nie je pripojený k nikomu doteraz k dispozícii pre každého. Keď inštancia objektu vyžaduje osobitnú pozornosť, stačí jedno zariadenie, ktoré bude rozšírené funkcie, to znamená, že zdedí všetko, čo bolo v pôvodnom objekte, ale pridáva niečo.
    World aktualizovanej inštancie druhý objekt, v ktorom sú tu aj nové požiadavky. Nové funkcie a nový objekt. Ale nie každý nový objekt môže mať potomkov. Niektorí ich už viac nepotrebujú. V dôsledku tejto konštrukcie vychádza rozvetvená obraz objektov, ale v skutočnosti je život masové kópia nesúvisiace rodokmene a funkčné zlúčeniny. Ideálne implementačné úlohy v OOP štýle - keďzapuzdrenie, polymorfizmus, dedičnosť sú premyslené tak kvalitatívne, že kód v programe úplne chýba. Samotné objekty vykonávajú svoje funkcie, používajú iba svoj kód, vytvárajú vzájomné vzťahy.

    Život OOP

    V skutočnosti všetko vyzerá veľmi odlišne. Zapuzdrenie je dobré a nemyslíte sa tu. Ale správne konštruovať obraz objektov, rozmýšľať o funkčnosti každého z nich, predvídať, ako sa niektoré alebo iné prípady, ktoré sa dajú očakávať od údajov, správať sami, nie je ľahké. Musel som túto situáciu zjednodušiť a OOP išiel na ceste k automatizácii práce developera, a nie k riešeniu skutočných problémov. Z hľadiska rýchlosti získavania skúseností je to efektívny nápad, pretože to, čo by mali robiť OOP na automatizáciu účtovníckej práce, keď sa dá pridať do menu na stránke HTML? Je to veľmi jednoduché: existuje položka ponuky, existujú jej varianty. Môžete navrhnúť užívateľovi, aby si vybral možnosti ponuky (vertikálne, horizontálne, rozbaľovacie), môžete vytlačiť tlačidlá (guľaté, štvorcové, zaoblené atď.).
    Málo ľudí sa zaujíma o prácu a život vývojára. Každý potrebuje účtovníctvo, výrobu a školenie, pretože je potrebné vykonať skutočné úlohy. Takže je potrebné zvýšiť tímy, ale systém objektov bude implementovaný rôznymi špecialistami a môžu sa navzájom ublížiť. V mnohých ohľadoch dal PLO na výrobné koľajnice. Už neexistuje žiadna pochybnosť: Zapuzdrenie, dedičstvo je dobrá cesta, ale ako chrániť pred inými zásahmi, a to tak zo strany, ako aj z pôvodu rodokmeňa? Nie je to nutne hacker.Náhodne poškodením zmenou údajov o predkoch, možno iným vývojárom. Moderné programovanie je veľa vývojárov, ktorí sú v súbore vzdialených kancelárií. Ako včelia moderní vývojári stavajú jednu spoločnú štruktúru objektov. Každý objekt musí byť zostrojený podľa všeobecných pravidiel a dáta a metódy, na ktoré odpovedá jeden programátor, nesmú byť dostupné iným. Keď niekto potrebuje niečo - toto je ďalšia téma. Na základnom princípe každý robí svoju vec vo svojej oblasti.

    Zapuzdrenie je dobré, ale

    PHPWord je silný, dobre vyrobený a sľubný produkt. Výborný systém objektov, dobre premyslený a efektívny. Nižšie je začiatok popisu interného objektu tohto produktu. Jednoduchá abstrakcia bunky tabuľky z všeobecne prázdnej abstrakcie - kontajnera. A toto je ďaleko od celého popisu.
    Nemusíte sa ponoriť do bahna, aby ste pochopili. Používanie toľko pripomienok dodáva jasnosť a chránené reči, súkromné ​​a verejné však povedať, v prvom rade, že vývojár tretia strana pomocou tejto knižnice zmenil na správnom mieste súkromného do verejného (poznámka znie :. "Sc 19062016 bola Privat") , Ide o kódovú chybu, ktorá bola pri aplikácii nútená opraviť, a preto musel niečo zmeniť. Môžeme predpokladať, že v priebehu vývoja je potrebné obmedziť prístup k určitej stránky, ale je tu ďalší dôležitý vôbec. Existuje život príkladov, existuje život objektov, ale je tu nový život - čo sa stane so systémom objektov v jeho aplikácii. Život v konštrukcii a život v aplikácii. charakteristickýfunkcia moderného programovania - pevná negácia kontinuity. Ak sa vývojár skôr uistil, že každá nová verzia doplní a zlepší predchádzajúcu verziu, dnes každá nová verzia objektu, jazyka, programovacieho prostredia sa zásadne alebo aspoň zásadne odlišuje od predchádzajúcej verzie. Dokonca aj podmienky hosťovania v hostiteľskej službe sa môžu zmeniť, takže budete musieť spracovať kód. A často je to veľmi ťažké.

    Dobrá dedičnosť, dobrá cesta von

    Žiadne chyby niekto je poistený. A každý nový obchod si vyžaduje vedomosti. PHPWord je dobrá knižnica a stačí si na to zvyknúť. Mnoho špecialistov strávilo veľa času. Vývojár, ktorý sa chystá použiť, musí venovať dostatok času štúdiu štruktúry súboru Vordov. Nie je to tajomstvo. Systém objektov PHPWord bude transparentný a prístupný. Je daná tak, ako je, ale ak existuje túžba ísť ďalej, pretože súčasná funkcia nestačí. Dobrý nápad. Potom je to ďalší systém objektov a lepšie, ak ide ďalej. Nie je taká zlá myšlienka rigidného odmietania kontinuity: stimuluje rozvoj vedomostí. Objekty postavené jedným tímom vývojárov sú ich úvahy o tom, ako vyriešiť úlohu, ako reprezentovať jej funkčnosť.
    Pochopenie tohto rozhodnutia inou developerskou spoločnosťou je transformáciou skúseností. Ak si myslíte, že je to len prototyp požadovaného systému objektov, prečo to jednoducho nezdieľajte? Dobrá dedičnosť - rys prírodnej inteligencie, sa spolieha na niečo primerané zo strany programovania - to je z poľabudúcnosť, aj keď najbližší.

    Správne zapuzdrenie

    Zapuzdrenie - to nie je kombinácia dát a kódu. Táto kombinácia žiaduce cenovo dostupné. Ak si myslíte, že žiadne dáta a algoritmy a prijať realitu a urobiť adekvátne zapuzdrenie, dedičnosť je akcia od developera na dodávateľa, je pravdepodobné, vzhľad objektov v pohybe a samorazvyvayuschyhsya, stále je to možné.

    Súvisiace publikácie