Objektile orienteeritud programmeerimine: definitsioon

Programmeerimise rakendusvaldkondade mitmekesistamine tõi kaasa erinevat tüüpi keeli. Selles artiklis me avastame mis on objektorienteeritud programmeerimine ja mis tüüpi objektorienteeritud programmeerimiskeeled on olemas. Julge oma teadmisi laiendada!

Objektile orienteeritud programmeerimine

Objektorienteeritud programmeerimine

Üldiselt eeldab programmeerimine keele tundmist, mis vastutab käskude arvutile edastamise eest, ja algoritmi, mis on teisendatud programmiks, aga mis on programmeerimine?

Programmeerimine on toimingute kogum, mis viib koodi kirjutamiseni ja on võimeline täitma eesmärki, mille jaoks see loodi. Omalt poolt a lähtekood on programmi või tarkvara sisemine esitus ja programm on rühm tellimusi, mis reguleerivad arvutite tööd.

Põhimõtteliselt läbib programm kolm etappi: programmi redigeerimine sobivas keeles, lähtekoodi teisendamine masina juhisteks ja linkimine objektikoodide ja funktsiooniteekide vahel, mille tulemuseks on lõpuks seda tuntakse käivitatava koodina.

Programm tuleb kirjutada kasutajale arusaadavas programmeerimiskeeles. Selleks peab programmeerija võtma vastu ühe paljudest olemasolevatest programmeerimisparadigmadest, mis määravad visiooni ja seega ka selle koostamisel järgitavate meetodite valiku.

Programmeerimise paradigmad

Programmeerimise ja tehnoloogia edusammud on tekitanud erinevaid programmeerimismetoodikaid või paradigmasid. Need on omakorda toonud kaasa erinevaid programmeerimisstiile ja erinevaid probleemide lahendamise vorme. Siin on olemasolevad paradigmad:

Imperatiivne paradigma

Selles öeldakse, et programmid on range juhiste jada ülevalt alla, mille katkestab vaid alamprogrammi kaasamine kuhugi sinna.

Struktureeritud paradigma

See rakendab protseduuride ja funktsioonide plokkide järgi rühmitatud koodistruktuure. Kood reprodutseeritakse silmuse kujul, kus domineerib loogiline põhjus.

Deklaratiivne paradigma

See ei kehtesta järjekorda, mida tuleb probleemi lahendamiseks vajalike toimingute tegemisel järgida. Selle sees eristatakse kahte tüüpi: funktsionaalne paradigma, kus probleemi ja lahendust kirjeldatakse funktsioonidena, ja loogiline paradigma, mis põhineb loogilisel predikaadil.

Sündmuste programmeerimise paradigma

See põhineb lõpmatul iteratsioonil probleemi avastamiseks ja selle lahendamiseks.

Paralleelsed, hajutatud ja samaaegsed paradigmad

Programmi realiseerimine nõuab mitmeid arvutusühikuid. Rutiinid töötavad teistes arvutusüksustes iseseisvalt.

Objektile orienteeritud paradigma

Objektile orienteeritud programmeerimine

Seda tüüpi programmeerimine põhineb kolmel põhiprintsiibil: andmete kapseldamine, objektide abstraktsioon ja tüübikontroll vastavalt klassihierarhiale.

Oluline on märkida, et programmeerimiskeel ei reageeri tavaliselt ainult ühele paradigmale, vaid võib tuleneda mitut tüüpi nende kombinatsioonist. Kuid allpool pühendume üksikasjalikult ainult määratlemisele mis on objektorienteeritud programmeerimine ja mis on erinevad objektorienteeritud programmeerimiskeeled mis eksisteerivad

Omadused

See on tänapäeval kõige laialdasemalt levinud paradigma, sest võimaldab mõistliku hinnaga keerukust paremini hallata. Selle kaudu pakutakse välja osadeks ehitamise võimalus, st töö osadeks jagamine, mille tulemuseks on vastupidavad, kaasaskantavad ja korduvkasutatavad rakendused, millel on pikaajaline kasu.

Erinevalt teistest programmeerimisviisidest otsib objektorienteeritud programmeerimine osi olemitest, mis tekivad probleemvaldkonnast, mitte aga probleemi lahendusest endast. Esmane nõue on, et iga komponent käituks ootuspäraselt, nii et selle rakendamine ei mõjutaks meie arengut ja et me saaksime a priori teada iga komponendi pakutavaid tingimusi ja ühenduse loomise viisi. .

Objektile orienteeritud programmeerimine

Teisest vaatenurgast võime mainida, et objektorienteeritud programmeerimine on seotud teadmiste teooriaga, mis väidab, et inimene salvestab informatsiooni vastavalt etteantud skeemidele, mis on tema kui inimese kogemuste produkt. Sel viisil võimaldab seda tüüpi programmeerimine esitada teadmisi heuristilisel või teoreetilisel viisil, läbi üksikisiku vaimsete skeemide, kasutades ära teabeühikutesse salvestatud varasemaid teadmisi.

Päritolu

https://youtu.be/aESIbDclIzw?t=5

Objektile orienteeritud programmeerimine on tehnika, stiil või metoodika, mis töötati välja 1960ndatel aastatel kriisi tagajärjel, mis tekkis keerukate programmide muutmise või muutmise võimatusest. Olukord, mis halvenes ja halvenes, kuna puudus programmidele hooldust vajav spetsialiseeritud personal.

Selle kriisi hetkelahendus oli struktureeritud programmeerimise käes, mis seisnes programmide jaotamises üksikuteks protseduurideks, mis täidaksid konkreetseid ülesandeid eraldi. See tõi endaga kaasa muid puudusi, mis tulenesid peamiselt sellest, kui raske oli koordineerimist saavutada paljude projektis osalenud arendajate vahel, sest mida rohkem ülesandeid, seda rohkem programmeerijaid.

Kahtlemata oli seda tüüpi programmeerimise peamine puudus vajadus andmed kontseptuaalselt koodidest eraldada. Olukord, mida halvendas otseselt programmi suurus ja keerukus.

Nii sündis programmide keerukuse vähendamiseks objektorienteeritud programmeerimine. Selle peamine eelis on see, et see võimaldab lihtsate objektide abil keerukaid programme koostada. Need objektid moodustavad selle metoodika järgi orienteeritud tarkvara olemid. Võimalus pärida olemasolevatelt rakendustelt nii andmeid kui ka koodi parandab arendaja tootlikkust. Samuti hõlbustab see klasside laiendamist ja taaskasutamist teistes rakendustes, ilma et peaksite algset koodi oluliselt muutma.

omadused

Objektile orienteeritud programmeerimisel on mitmeid omadusi, siin on peamised:

  • Objektorienteeritud programmeerimise aluseks on klassid, mitte algoritmid. Need moodustavad loogilised ehitusplokid.
  • Iga objekt on klassi eksemplar.
  • Programmi tajutakse vahendina sõnumite saatmiseks ja vastuvõtmiseks üksteisele reageerivate objektide komplekti kaudu.
  • Iga objekt peab otsima parimat viisi igale vastuvõetud sõnumile vastamiseks.
  • Iga objekt võib sõnumitele reageerida erineval viisil.
  • See muudab tarkvara vahetamise lihtsaks, kuna komponendid on vahetatavad.
  • Osalised ja sisemised muudatused ei mõjuta ülejäänud süsteemi käitumist.
  • Kui järgitakse objektorienteeritud programmeerimise aluspõhimõtteid, on süsteemi ehitamise maksumus väiksem kui juhtudel, kui osad on üksteisest sõltuvad.
  • Võimalik, et teistelt saadud klassid pärivad oma eelkäijate teadmisi ja oskusi. Pärimise kaudu on klassid omavahel seotud ja tööviisi kasutatakse ära, ilma et oleks vaja koodi ümber kirjutada.
  • Klassi meetodid võivad teha erinevaid asju, isegi kui neil on sama nimi. See tähendab, et polümorfismi kaudu saab programmeerija rakendada sama meetodi mitmeid vorme, olenevalt klassist, mille alusel rakendatakse. See tähendab, et sama nime või juurdepääsukandja kaudu pääseb juurde mitmele meetodile.

Erinevused: struktureeritud programmeerimine vs. Objektile orienteeritud programmeerimine

Nagu me juba mainisime, esindab objektorienteeritud programmeerimine struktureeritud programmeerimise arengut, mis ei tähenda, et see oleks parem kui see, kuna igal neist on oma kasulikkus sõltuvalt arendatava süsteemi tüübist. Põhilised erinevused nende kahe vahel on toodud allpool:

Struktureeritud programmeerimine lahendab algoritmilisi probleeme, alustades mõningate andmete kasutuselevõtust, genereeritakse väljund. Objektile orienteeritud programmeerimine põhineb objektide modelleerimisel, mis on veebirakenduste arendamisel väga kasulik.

Esimene keskendub andmestruktuurile, teine ​​aga objektidele, millel on oma olek ja käitumine.

Struktureeritud programmeerimise teave voolab läbi struktuuride ja kutsub funktsioone, objektorienteeritud programmeerimisel on see nendevahelise suhtluse tulemus, saates ja vastu võttes sõnumeid.

Põhiprintsiibid

Objektile orienteeritud programmeerimise kontseptsiooni tulemusena ilmnevad selle paradigma kolm põhiprintsiipi. Need on:

Andmete kapseldamine

Nagu me juba mainisime, eeldatakse, et objektid teavad, kuidas neile saadetud sõnumitele vastata, näidates konkreetset käitumist. Kuid me ei taha, et sõnumi saatja teaks, kuidas ta seda teeb. Selle eesmärgi saavutamist nimetatakse andmete kapseldamiseks. Teisisõnu, mida soovite, on see, et iga programmi osa teab ainult seda, mis teda huvitab, vältides seega teiste objektidega seotud kõrvalmõjusid.

Lühidalt öeldes on andmete kapseldamise korral juurdepääs objektide komponentidele võimatu, see tähendab, et need on kaitstud ühe täpselt määratletud programmeerimisüksuse piires, sest igal neist on disaini spetsifikatsioonid, mis muudavad need üksteisest sõltumatuks.

Peamine põhjus, miks me võime soovida, et kliendiobjekt ei teaks teostusviisi, on see, et üldiselt võib sama toimingu jaoks olla mitu alternatiivi. Lisaks võime tulevikus otsustada ühelt alternatiivilt teisele üle minna, ilma et klient teaks või näeks mõjutatavat teenuse osutamist.

Objektide abstraktsioon

Objektorienteeritud programmeerimise oluline tunnus on see, et see püüab probleemi osade kaupa rünnata. Sel viisil leiab ta esmalt objektid, määrab seejärel nende suhtlemise ja lõpuks rakendab oma käitumise. Järelikult on meil leitud objektid need, mis aitavad meil probleemi lahendada.

Abstraktsioon hõlmab kahte tüüpi teadmisi, andmeid või muutujaid, mis moodustavad mentaalse skeemi, ja meetodeid, funktsioone või protseduure, mis seovad skeemi teiste etteantud skeemidega. See tähendab, et tänu andmete ammutamisele saab määratleda andmete domeeni ja struktuuri ning määrata kindlaks meetodid neile juurdepääsuks. Lõpuks muutub abstraktsioon programmeerija määratletud uut tüüpi andmeteks, mis koosneb atribuutidest ja meetoditest, mida esimesele rakendatakse.

Kuna sama probleemi jaoks on mitu vaimset skeemi, võib iga programmeerija korraldada tunde erineval viisil, vastavalt oma isiklikule arusaamale. Ta peab silmas seda, et objektide abstraktsioon on võime programmi kujunduses luua kasutaja määratud andmeid.

Tüübikontroll vastavalt klassi hierarhiale

See on siis, kui valite tüübikontrolli keele. On keeli, mis otsustavad seda kompileerimise ajal teha, ja teisi täitmise ajal. Teised keeled isegi ei kompileeri, mis ei anna teile võimalust teha igasuguseid kontrolle kuni käitusajani.

Kui kontroll tehakse töö ajal, nimetatakse seda dünaamiliseks kontrollimiseks. Seevastu kompileerimise ajal seda nimetatakse staatiliseks kontrollimiseks.

Tulenevalt asjaolust, et staatilises kontrollis tekivad vead algusest peale, jõudmata täitmise hetkeni, öeldakse sageli, et seda tüüpi kontroll on turvalisem. Dünaamiline testimine võimaldab aga osalisi rakendusi, ilma et oleks vaja koodi korduvalt ümber kirjutada.

Kuidas see toimib?

Esimene samm probleemi lahendamiseks selle paradigma alusel on leida probleemvaldkonna objektid või olemid. Siis on vaja leida viis, kuidas need üksused probleemi lahendamiseks suhtlevad, kehtestades sõnumid, mida objektid saadavad, millises järjekorras ja mis tingimustel nad seda teevad. Lõpuks peate rakendama objektide käitumist, viidates nende vastusele sõnumite osas.

Kokkuvõtteks võib öelda, et kui programmi käivitatakse objektorienteeritud programmeerimise paradigma all, juhtub kolm asja: objektid luuakse vastavalt vajadusele, sõnumid liiguvad ühelt objektilt teisele paralleelselt programmi andmetöötlusega ja kui objekte pole enam vaja, need kustutatakse süsteemi mälu vabastamiseks.

Põhimõisted

Et asjast natuke rohkem aru saada mis on objektorienteeritud programmeerimine, peame mainima järgmisi põhimõisteid:

  • Objekt: see viitab olemile, mis võib olla sõnumite vastuvõtja, samas kui ta saab neile vastata ja saata sõnumeid teistele objektidele. See on üksus, millel on käitumine.
  • Identiteet: see on aspekt, mis eristab üht objekti teisest.
  • Sõnum: see on sellest tulenev suhtlus teenust taotleva üksuse ja seda pakkuva üksuse vahel.
  • Kliendiobjekt: see on see, kes sõnumi saadab.
  • Vastuvõtja objekt: see on objekt, mis võtab sõnumi vastu.
  • Delegeerimine: viitamine sõnumite saatmisele objektilt teistele objektidele. Kui objekt vajab sõnumitele vastamiseks teiste koostööd.
  • Käitumine: need on vastused vastuvõtva objekti saadud sõnumitele.
  • Olek: viidatakse iga objekti hetkeolukorrale.
  • Vastutus: see on oleku ja objekti käitumise vastastikmõju.
  • Meetod: see viitab objekti poolt saadud sõnumile antud vastuse rakendamisele.
  • Polümorfism: see on mõnede objektide võime vastata samale sõnumile, kuid mitmel erineval viisil.
  • Klassid: need on objektide kogumid, mis käituvad samamoodi. Neid saab määratleda programmeerija. Need on vaimsed skeemid, mis võimaldavad esemeid abstraheerida ja määrata, kuidas üksteisega suhestuda.
  • Atribuut: see viitab objekti sisemisele muutujale, mis on loodud osa oleku salvestamiseks.
  • Leping: viidatakse teadmistele, mida iga komponent pakub, ja sellega ühenduse loomise viisile.

Veaotsing, mis põhineb objektorienteeritud programmeerimisel

Kui probleem on tuvastatud ja võimalik lahendus välja pakutud, tuleb see transkribeerida programmeerimiskeelde, et seda saaks arvuti abil programmi abil teostada. Objektile orienteeritud programmeerimise metoodika kohaselt on määratletud järgmised etapid:

  • Programmi määratlus: see käsitleb probleemi skemaatilist kirjeldust selgel, arusaadaval ja täpselt määratletud viisil. See hõlmab töödeldavate andmete päritolu ja aspekti kindlakstegemist, samuti tulemuste kirjeldust ja nende esitamise viisi.
  • Objektikeskne analüüs ja disain: viitab probleemvaldkonna objektide identifitseerimisele ja kirjeldamisele. Pärast seda luuakse järgitavad atribuudid, seosed ja meetodid, et määratleda klassid, mida rakendatakse konkreetses programmeerimiskeeles.
  • Programmeerimine: Põhimõtteliselt viitab see programmi transkriptsioonile, mis hõlmab koodi õiget kirjutamist programmeerimiskeeles, kasutades arendusstiili, mis suudab tagada toote kvaliteedi, mis põhjustab probleemi nõuetekohase lahendamise. See etapp hõlmab algoritmide koostamist, vooskeemide väljatöötamist ja lõplikku programmeerimist, töölaua testide läbimist, programmi kodeerimist, koostamist ja täitmist.
  • Dokumentatsioon: see hõlmab probleemi lahendamiseks vajalike sammude jada kirjeldust. See hõlmab kommentaaride lisamist, mis selgitavad või selgitavad koodiridade tähendust, mis võib segadust tekitada, eriti neid, mis viitavad identifikaatoritele ja deklareeritud andmestruktuuridele, juhtimisstruktuuridele ja -meetoditele ning nende parameetritele. See etapp on lõpptoote õnnestumiseks hädavajalik, sest dokumentatsiooni ebaõnnestumise korral on programme raske lugeda ja siluda ning veelgi enam muutub nende muutmine ja hooldamine peaaegu võimatuks.

Teises mõttes võime öelda, et programmeerimiskeelte funktsionaalsus on aastate jooksul suurenenud, peamiselt uute ja mitmekesiste rakendusvaldkondade ilmumise tõttu. Kuigi on tõsi, et alguses kasutati neid keeli põhimõtteliselt suurte andmemahtude käitlemiseks ja teatud arvuliste arvutuste tegemiseks.

Nüüd kasutatakse programmeerimiskeeli peaaegu kõigis ühiskonna valdkondades, mis hõlmavad paljude muude aspektide kõrval andmebaaside haldamist, piltide loomist ja isegi tehisintellekti.

Peamiselt on uute tarkvaratehnoloogiate sünd põhjustanud programmeerimiskeelte tõusu, mida näeme allpool.

Objektile orienteeritud programmeerimiskeeled

Need on keeled, mis on loodud andmete ja aplettide klassidesse integreerimiseks. Need võivad pärida teiste teisendatud koodide omadusi ja tekitada uusi omadusi, mis toovad kaasa ka uue programmeerimismetoodika.

Klassifikatsioon

Nagu hiljem näeme, on objektorienteeritud paradigmale reageerimiseks mitmeid programmeerimiskeeli. Nende rakendamisviisi järgi klassifitseeritakse need järgmisteks:

  • Käitumist rakendades: see hõlmab keeli, mis põhinevad klassidel ning prototüüpidel või näidetel.
  • Objektide loomise rakendamisel: need põhinevad dünaamilise mäluala täitmisajal või virna koostamisajal.
  • Vastavalt tüübikontrollile: viitab kompileerimisaja kinnitusele või käitusaja kinnitamisele.

Peamiste objektorienteeritud keelte hulgas on meil:

mis on objektile orienteeritud programmeerimine

Väike jutt

Seda saab programmeerida ainult objektorienteeritud programmeerimise paradigma all. See on klassipõhine keel, mis kujundab dünaamilises mälupiirkonnas objekte jooksva aja jooksul. See kontrollib tüüpe ainult käitusajal, st on dünaamiline kontrollikeel.

Java

See on tänapäeval üks enimkasutatavaid keeli, see on täielikult objektorienteeritud, süntaks sarnane C ja C ++ -ga. See on platvormist sõltumatu.

Nagu Smalltalk, on see ka klassipõhine keel, mis loob objektid dünaamilises mälualas käitusajal, kuid ei tee tüübikontrolli käitusajal, vaid pigem kompileerimise ajal, selle erinevusega, et loob vahepealse mittetöötatava koodi , pärineb eelkompileerimisest. See muudab selle staatiliseks kontrollikeeleks.

Java objektorienteeritud programmeerimine need töötavad seda tüüpi keeltele spetsialiseerunud virtuaalmasinal, mis töötab nagu arvuti ja võimaldab seega nende täitmist ilma neid muutmata. Seda tüüpi masinaid nimetatakse tõlkideks.

Objektile orienteeritud programmeerimine

JavaScript

Erinevalt Smalltalkist ja Java -st on see keel, mis tugineb prototüüpimisele või näidetele. Seda tõlgendatakse ja ilma tüüpideta, see tähendab, et see ei teosta tüübikontrolli ei käitamis- ega kompileerimisajal. Loob objektid dünaamilises mälualas käitamisajal. Kuna sellel puudub kompileerimine, muutub see dünaamiliselt kontrollitud keeleks.

See on võimas keel tänu oma teisaldatavusele ja integreerimisele, samuti standardsetele ja lihtsatele programmeerimisvõtetele. Teisisõnu, JavaScript on veebilehele manustatud kood, mille eesmärk on parandada selle lehe dünaamilisust.

C + +

See kujutab endast traditsioonilise C -keele edasiarendamist, kuna kasutab ära selle keele eeliseid ja lisab objektidele toed. Kuigi see hõlmab kolme erinevat programmeerimisparadigmat, näiteks: struktureeritud programmeerimine, üldine programmeerimine ja objektorienteeritud programmeerimine, juhtis ta üleminekut struktureeritud paradigmalt objektorienteeritud paradigmale.

See on mitmekülgne keel, mida kasutatakse väga sageli rakenduste programmeerijate seas nii Windowsis kui ka GNU Linuxis. Loob objektid dünaamilises mälus käitamise ajal. Põhimõtteliselt keskendub see jõudlusele, teisaldatavusele ja abstraktsioonile. Selle peamine puudus on see, et kompileerimisel genereeritakse käivitatav fail, mille kood kehtib ainult selle platvormi jaoks, kus kompileerimine tehti. Teisest küljest, kuna see on käivitatav keel, ei ole see platvormist sõltumatu.

C#

See on programmeerimiskeel, mis töötab käitusajal ja on kaasatud .NET platvormi, mis võimaldab teil oma teeke jagada ja ära tunda. See on täielikult objektorienteeritud, võimaldab luua igasuguseid rakendusi.

See kujutab endast C- ja C ++ -keelte arengut, välistades viimase keerukuse, kuna seda on lihtsam kasutada ja see vähendab eeltöötluse aktsepteerimise tõttu veamäära.

Objektile orienteeritud programmeerimine

Python

See on mitmeplatvormiline keel, peamiselt objektorienteeritud, kuid hõlmab ka teisi paradigmasid, nagu kohustuslik programmeerimine, funktsionaalne programmeerimine ja aspektidele orienteeritud programmeerimine.

Selle puhas süntaks, mis on loomulikule keelele väga lähedal, soosib selle koodi lugemist. On väga soovitatav alustada programmeerimise maailmas.

See täidetakse vaheprogrammi kaudu, see tähendab tõlgi kaudu. Kuna see on pooltõlgendatud keel, on see paindlik ja kaasaskantav. See sisestatakse dünaamiliselt, mis tähendab, et andmetüüp määratakse käitusajal.

lihavõtted

Praegu on see programmeerimise õpetamisel par excellence kasutatav keel. Sellel on lihtne süntaks ja struktureeritud keel, mis hõlbustab programmide lugemist ja tõlgendamist. Selle kompileerimise saab teha mis tahes masinal, millel on Pascali kompilaator.

Vaatamata struktureeritud keelele võimaldab see Turbo Pascali versiooni kaudu objektorienteeritud programmeerimist. Sellel on integreeritud keskkond, kust on võimalik programme kirjutada ja neid testida. Lõppkokkuvõttes on Pascal üldotstarbeline keel.

Kui teid huvitav teema on seotud programmeerimisega, siis kutsun teid lugema Mis on programmeerimise algoritm?


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: ajaveeb Actualidad
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.