Geturðu útskýrt muninn á málsmeðferðarforritun og OOP?


svara 1:

Upprunaleg spurning:

Geturðu útskýrt muninn á málsmeðferðarforritun og OOP?

Svör:

Í fyrsta lagi skulum við skilgreina hvað málsmeðferð og hlutbundin forritun þýðir.

Skilgreining - hvað þýðir málsmeðferðarmál? Málsmeðferðarmál er tegund tölvuforritunarmáls sem tilgreinir fjölda vel uppbyggðra skrefa og aðferða í forritunarsamhengi til að búa til forrit. Það inniheldur kerfisbundna röð leiðbeininga, aðgerða og skipana til að framkvæma tölvuverkefni eða forrit. Málsmeðferðartungumálinu er einnig vísað til bráðefnismálsins. Tæknin skýrir málsmeðferðarmál málsmeðferðar málsmeðferðarmálsins, eins og nafnið gefur til kynna, byggist á fyrirfram skilgreindum og vel skipulögðum verklagsreglum og aðgerðum eða undirorðum í forritsskipulaginu með því að tilgreina öll skref sem tölvan þarf að taka til að ná tilætluðum stöðu eða úttaki ná. Málsmeðferðarmunur skilur forrit í breytur, aðgerðir, leiðbeiningar og skilyrt rekstraraðila. Verklagsreglum eða aðgerðum er hrint í framkvæmd á gögnum og breytum til að framkvæma verkefni. Þessar aðferðir er hægt að hringja / hringja hvar sem er á milli stigveldis forritsins og einnig frá öðrum aðferðum. Forrit sem er skrifað á málsmeðferðartungumáli inniheldur eina eða fleiri verklagsreglur. Málsmeðferðarmálið er ein algengasta tegund forritunarmála með áberandi tungumálum eins og C / C ++, Java, ColdFusion og PASCAL.

Nú skulum við skilgreina hlutbundna forritun.

Skilgreining - Hvað þýðir hlutbundin forritun (OOP)? Hlutbundin forritun (OOP) er forritunarlíkan hugbúnaðar sem er byggt upp í kringum hluti. Þetta líkan skiptir gögnum í hluti (gagnareitir) og lýsir innihaldi og hegðun hlutar með því að lýsa yfir flokkum (aðferðum). OOP aðgerðirnar eru: Encapsulation: Þetta auðveldar stjórnun forritsskipulagsins þar sem útfærsla og staða hvers hlutar eru falin Vel skilgreind mörk Fjölbrigði: Þetta þýðir að abstrakt einingar eru útfærðar á nokkra vegu. Erfðir: Hér er átt við stigveldi fyrirkomulagi á brotum. Hlutbundin forritun gerir kleift að einfalda forritun. Ávinningur felur í sér endurnýtanleika, endurgerð, útþenslu, viðhald og skilvirkni. Techopedia útskýrir hlutbundna forritun (OOP) OOP hefur verið forritunarlíkanið að eigin vali í að minnsta kosti áratug. Mátbygging OOP gerir forriturum kleift að búa til hugbúnað í viðráðanlegum reitum í staðinn fyrir mikið magn af raðkóða. Einn af stóru kostum OOP er sveigjanleiki, þar sem hlutir og skilgreiningar hafa enga takmarkaða takmörkun. Aðskilnaður gagna og aðferða kemur einnig í veg fyrir algengt vandamál sem kemur upp á eldri línulegum hugbúnaðarmálum. Ef villa á sér stað í línulegri kóða er hægt að þýða það með kerfinu og valda margvíslegum villum sem erfitt er að rekja. Aftur á móti er OOP forrit með aðgreiningu á aðferð og gögnum ekki næm fyrir slíkum auknum villum. Vinsæl OOP tungumál eru Java, C tungumál fjölskyldan, VB.NET búð og Python. Svokölluð „hrein“ OOP tungumál eru meðal annars Scala, Ruby, Eiffel, JADE, Smalltalk og Emerald.

Uppruni skilgreininganna kemur frá Hvað er hlutbundin forritun (OOP)? - Skilgreining frá Techopedia og hvað er málsmeðferðarmál? - Skilgreining Techopedia

Nú. Við skulum skoða muninn á framkvæmdinni.

Við byrjum á málsmeðferðinni og auðveldasta leiðin til að gera þetta verður að nota C tungumálið sérstaklega fyrir Arduino, eins og ég veit það.

Ég valdi leiðbeiningar um blikkandi ljós þar sem það er ein af grunnútfærslunum.

// Uppsetningaraðgerðin er keyrð einu sinni þegar stutt er á núllstilla eða slökkt á kortinu. ógilt uppsetning () {// frumstilla stafræna pinna LED_BUILTIN sem framleiðsla. pinMode (LED_BUILTIN, OUTPUT); } // lykkjuaðgerðin keyrir aftur og aftur að ógildri lykkju () {digitalWrite (LED_BUILTIN, HIGH); // kveikja á LED (HIGH er spennustigið) seinkun (1000); // bíðið í annað digitalWrite (LED_BUILTIN, LOW); // Slökktu á LED með því að fresta spennunni í LOW (1000). // bíddu í sekúndu}

Nú skal ég útskýra kóðann aðeins betur. Þeir hafa tvær aðgerðir, skipulag og lykkju. Lykkjan er hringd ítrekað og uppsetningin er aðeins kölluð einu sinni. Þú sendir digitalWrite skipunina á LED til að stilla nafnaflið á hátt eða lágt. Seinkunin gefur til kynna hversu lengi ljósið heldur áfram að vera slökkt eða slökkt, í þessu tilfelli 1000 ms eða um það bil 1 sekúndu. Alveg einfalt, en það sýnir að þú þekkir grunnatriði málsmeðferðar forritunar. Þú skrifar aðferð eða leiðbeiningar og þetta er endurtekið þar til henni lýkur. Ekki er þörf á viðbótarflækjum nauðsynlegs kóða.

C # og OOP sýnistími.

nota kerfið; nota System.Collections.Generic; nota System.Linq; að nota System.Text; Nafnsrými Úbbs {almennur viðskiptavinur {// meðlimir breytur opinber int CustID; nafn almenningsstrengs; heimilisfang strengs; // framkvæmdaaðili til að frumstilla reiti viðskiptavinar () {CustID = 1101; Nafn = "Tom"; Heimilisfang = "USA"; } // aðferð til að birta viðskiptamannaskrár (virkni) opinber ógilt displayData () {Console.WriteLine ("Viðskiptavinur =" + CustID); Console.WriteLine ("Nafn =" + Nafn); Console.WriteLine ("Address =" + Address); } // kóða fyrir inngangsstað}} bekkjarforrit {static void main (band [] args) {// object instantiation customer obj = new customer (); // aðferð sem kallar obj.displayData (); // reitir sem kalla Console.WriteLine (obj.CustID); Console.WriteLine (obj.Name); Console.WriteLine (obj.Address); }}}

Hérna er klassískt dæmi um OOP. Þú ert með viðskiptavinaflokk sem skilgreinir alla hluti sem eru í boði fyrir þig. Þú hefur enn aðgerðir / aðferðir til að skrifa. Aðalmunurinn er hins vegar sá að þú vilt skipta hverri aðferð / aðgerð í samræmi við verkefni þess. Þaðan er aðalaðferð þín inngangsstaður forritsins og ætti að hafa gagnrýninn kóða hérna.


svara 2:

OOPS hugtak í Java

Málsmeðferðin er byggð á aðgerðum en hlutbundið tungumál byggist á raunverulegum hlutum. Málsmeðferðarmálið þýðir röð röð framkvæmdarinnar, en hlutbundið tungumál veitir stöðu og hegðun hlutanna. Málsmeðferðarmálin gera gögnin tiltæk fyrir allt forritið, en hlutbundið tungumál fylgir forritunar hugmyndafræði frá toppi til botns, en hlutbundið tungumál fylgir forritunar hugmyndafræði frá botni til topps. Málsmeðferðarmálið er flókið í eðli sínu, sem gerir það erfitt að breyta, lengja og viðhalda, en hlutbundið tungumál er minna flókið.Þetta er auðveldara að breyta, stækka og viðhalda. Málsmeðferðin býður upp á færri möguleika til endurnotkunar en hlutbundið tungumál býður upp á fleiri möguleika til endurnotkunar.


svara 3:

Verklagsforritun er forritun með verklagsreglur sem aðal abstraktkerfi. Hæ.

Hvað er aðferð? Það er nafngreindur klumpur af kóða sem hægt er að kalla með nafni og fær gildi og tilvísanir úr samhenginu sem það er kallað í, færibreyturnar, og eftir nokkra vinnu getur verið skilað gildi og tilvísunum í það samhengi.

Ákveðið gildi er oft gefið sem skilagildi innan málsmeðferðarinnar. Á tungumálum sem styðja verklagsreglur eru þau oft notuð eins og þau væru aðgerðir, þar sem breytur eru meðhöndlaðar sem rök og skilaverð innan málsmeðferðarinnar er reiknað sem gildi aðgerðarinnar fyrir þau rök. Hins vegar er það líka idiomatic ef málsmeðferðin skilar einu eða fleiri gildum með breytum í kallsamhengi þeirra, annað hvort „út“ færibreytur ef tungumálið styður það eða með því að breyta gildi sem er sent með tilvísun, og skila gildið sjálft fyrir Fáni, staða eða villuskjár er notaður. Í forritunarmenningum sem Unix hefur undir miklum áhrifum er 0 oft skilað til að gefa til kynna árangur (eða að minnsta kosti skortur á þekktum galla) og neikvæðri tölu sem gefur til kynna þekktan bilunarhátt.

Það er ekki stranglega nauðsynlegt fyrir líkanið, en ég get ekki hugsað mér tungumál sem notar verklagsreglur sem aðaltæknibúnað, sem hefur ekki stjórnunarflæði, sem notar nokkurn veginn sama sett af þekktum hálfgaldraaðferðum og:

ef (skilyrði) {doThisThing ()} annars {doThatThing ()}

og

meðan (skilyrði) {keepOnDoingThisThing ()}

Ég held að í hugum flestra forritara tengist „málsmeðferð“ forritun nokkurn veginn „skipulögð forritun“. Til baka þegar skipulögð forritun var ný kom í ljós að það er til hagnýt mengi stjórnflæðisuppbygginga sem hægt er að smíða öll nauðsynleg stjórnflæðimynstur innan verklags:

Veldu valkosti

  • ef þá annað (tveir kostir byggðir á Boolean gildi) máli eða skipta (margir kostir miðað við hvaða upphæð)

Endurtekning

með þekktum mörkum:

  • fyrir lykkjur (venjulega ákveðinn fjölda endurtekninga) leita að lykkjum (endurtaka eins oft og stærð safns, hugsanlega yfir meðlimina sjálfa)

með sértækum mörkum:

  • meðan gera (0 eða fleiri endurtekningar) gera á meðan (1 eða fleiri endurtekningar)

og því miður óvinsælir:

  • Hætta-þegar lykkja

Þetta keyrir kóðann að minnsta kosti einu sinni áður en hann er lokaður og kóðinn núll eða oftar eftir að hann er lokaður.

Hægt er að útfæra þessi mannvirki í tengslum við hvert annað, en það er furðu erfitt í sumum tilvikum. Mjög erfitt er að herma eftir yfirlýsingum um rofa / mál nákvæmlega með nestuðum ifs. Í okkar tilgangi er mikilvægt að þeir séu næstum alltaf samþættir tungumálanotkuninni og geti gert hluti sem þú, sem vinnandi forritari, átt í erfiðleikum með að skrifa kóða. Í hvaða eingöngu eða fyrst og fremst málsmeðferðartungumáli sem ég get ímyndað mér, væri það mjög erfitt og í mörgum tilfellum algerlega ómögulegt að skrifa eigin stjórnskipulag sem virkuðu alveg eins og innbyggðu. Svo þú notar þær sem eru innbyggðar. Málsmeðferð, skipulögð forritun er mjög takmarkaður heimur.

Sem reglu, málsmeðferð forritunarmál hafa einnig eins konar mát hugtak, sem heitir ílát fyrir röð af verklagsreglum. Sumar af þessum aðferðum eru sýnilegar og nothæfar utan einingarinnar, aðrar eru aðeins sýnilegar og nothæfar innan einingarinnar, þ.e. með öðrum aðferðum einnig innan sömu einingar. Á flestum tungumálum með einingum getur eining einnig innihaldið breytur sem eru sýnilegar og deilt með þeim aðferðum sem eru skilgreindar í einingunni. Jafnvel C getur gert það. Slíkt einingarkerfi gerir kleift að umfangsmikla umbreytingu og fela upplýsingar: Þessar aðferðir og breytur innan einingarinnar, sem gera kleift að útfæra verklag sem er sýnilegt utan einingarinnar, getur hjálpað til við að tengja yfir uppbyggingu kerfisins að stjórna. Sem er fínt.

Ef þú ferð einu skrefi lengra og leyfir margs konar notkun á sömu einingunni, og hver notkun hefur sitt eigið eintak af breytunum sem eru skilgreindar í einingunni, einingin lítur út eins og frumstæð tegund hlutar. Og ef þú gerir tilfelli af einingunum með breytunum að aðalatriðinu og skiptir einhvern veginn verklaginu á milli þannig að þú hafir aðeins eitt eintak af þeim, þá ertu nokkuð nálægt því sem C ++ gerir. Þessi fínkornaða mát, málsmeðferð, skipulögð forritun er ekki hlutbundin forritun.

Hlutbundin forritun er forritun með hluti sem aðal abstraktkerfi. Hæ.

Hvað er hlutur? Það er langvarandi tölvueining sem hægt er að biðja um að gera eitthvað. Forngerð og dæmi um hlutbundna forritun er Smalltalk. Í Smalltalk er hvert gildi hlutur (eða að minnsta kosti fáu gildin sem eru ekki hlutir líta út eins og þau eru). Útreikningurinn er gerður með hlutum sem senda skilaboð hvort til annars. Útfærsla Smalltalk er lítillega breytileg en þetta er almenna hugmyndin:

Hlutir í minningunni. Þegar hlutur vill að annar hlutur geri eitthvað, þá býr hann til skilaboð þar sem hann biður um hann og sendir hann til fyrirhugaðs hlutar. Skilaboð eru hlutir. Hlutir eru ábyrgir fyrir því að viðhalda stöðunni, þ.e. þeir innihalda breytur. Þú ert ekki með neinn kóða. Þegar hlutur fær skilaboð, sendir hann það til síns flokks. Námskeið eru hlutir. Bekkir bera ábyrgð á að búa til og stjórna hlutum, þeir keyra ekki kóða. Bekkurinn framsendir skilaboðin til metaklasans. Metatímar eru hlutir. Metatímar bera ábyrgð á stjórnun aðferða. Metaklasinn kannar aðferðir sínar og finnur þá sem samsvarar skilaboðunum. Aðferðir eru hlutir. Á leiðinni var skilaboðamótið skreytt með ýmsum viðbótarupplýsingum, þar á meðal tilvísun í hlutinn sem fékk skilaboðin. Aðferðin er ábyrg fyrir því að keyra kóða með því að nota öll rök sem eru send í upphaflegu skilaboðunum. Aðferðin keyrir kóðann sinn í samhengi við hlutinn sem fékk skilaboðin. Aðferðakóðinn er bara handrit með skilaboð sem á að búa til og senda til annarra hluta. Ef metaklasinn finnur ekki aðferð sem passar við skilaboðin, er leitað í töflureiknum foreldraflokka í flokki hlutarins. Þetta er kallað „arfur“.

Það getur verið að í einni eða annarri útfærslunni séu ákveðnar aðferðir samþættar í útfærslunni af hagkvæmnisástæðum, en í grundvallaratriðum getur allt lítið talkerfi virkað nákvæmlega á sama hátt.

Í Smalltalk þýðir forritun sambland af handritsskilaboðum sem eru send í aðferðir og stofnun nýrra flokka (með metagleraugu) fyrir aðferðir til að lifa í. Þetta á við um jafngildi stjórnflæðisins sem og allt hitt.

Á málsmeðferðartungumálum geturðu gripið til aðgerða fyrir hvern sem er í safni með kóða eins og þennan gervivakóða:

foreach (theThing in aCollection) doThisActionOn (theThing)

Í dæmigerðri smáræðu gæti samsvarandi handrit til að senda skilaboð litið svona út:

aCollection do: [aThing | aThing takeThisAction].

Hér er takeThisAction skilaboð sem eru send til allra aThing hlutar í aCollection. (Tilviljun, kóðinn í fermetra sviga er reitur sem Smalltalk kallar Lambda. Það er hlutur.) Ef við berum saman þá tvo, sjáum við nokkra mikilvæga eiginleika hlutbundins forritunar öfugt við málsmeðferð:

  • Í málsmeðferðarkóðanum veljum við hvernig meðlimir safnsins eiga að fara í gegnum og við veljum forspjallkerfið. Í hlutbundnum kóðanum biðjum við safnið um að fara fram. Við vitum ekki hvernig þetta er gert. Í verklagskóðanum verður kóðinn að hafa aðgang að verklaginu með nafninu doThisActionOn, í hlutbundnum kóða er takeThisAction aðeins tákn. Við vitum ekki hvernig hlutirnir í safninu munu túlka þetta.

Þetta er kjarninn í hlutbundinni forritun og hefur verið lýst sem „forritun með því að afhenda peningana“. Við málsmeðferð, hins vegar, verðum við að taka skýrt fram hvað hver útreikningur gerir.