KomputilojProgramado

OLP - kio estas tio? La bazaj principoj de programado orientita al celoj

Kial programado orientita al celoj estas preferita en plej projektoj? OLP proponas efikan manieron trakti lia complejidad. Anstataŭ konsiderante programon kiel sekvenco de plenumebla instrukcioj, ĝi reprezentas ĝin kiel grupo de objektoj kun certaj ecoj kaj produkti ilin per certaj agoj. Ĉi tiuj rezultoj en pli klara, pli fidinda kaj legkosoprovozhdaemyh aplikoj.

La bazaj principoj de programado orientita al celoj (OOP) formis pro limigoj estas trovitaj en antaŭ-ekzistantaj aliroj. Inter ili - senlima aliro al la datumoj kaj grandan nombron da ligiloj, kiuj trudas restriktojn sur la ŝanĝo. Ilia konscio kaj kaŭzoj grava kompreni kion OOP programado kaj kiuj estas liaj avantaĝoj.

proceduraj lingvoj

C, Pascal, FORTRAN, kaj similaj lingvoj estas proceduraj. Tio estas, ĉiu el la operatoro diras la komputilon fari ion: atingi la datumojn, sumigi la nombroj, dividita en ses, la rezulto montriĝas. Aldono proceduraj lingvo estas instrukcion listo. Se ĝi estas malgranda, neniu alia organiza principo (ofte nomata kiel paradigma) estas ne bezonata. La programisto kreas listo de instrukcioj, kaj la komputilo ekzekutas ilin.

Disiĝo de funkcioj

Kiam aplikoj fariĝis pli maloportuna listo de turnoj. Malmultaj povas kompreni pli ol kelkaj cent instrukcioj ĝis ili estas kolektitaj. Tial, la funkcio estis la vojo por fari la aplikon pli komprenebla al liaj kreintoj. En iuj lingvoj, la sama koncepto povas nomi subrutinas aŭ proceduroj.

La app estas dividita en funkcioj, ĉiu el kiuj havas klare difinita celo kaj interfaco.

La ideo de disiĝo de proceduroj povas esti vastigita en pli grandan grupon de objekto nomiĝas modulo, sed la principo estas analoga: la grupigo de komponantojn kiuj portas listojn de dokumento.

Disiĝo de funkcioj kaj moduloj - unu el la angulo ŝtonoj de programado strukturita, kiu dum pluraj jardekoj ĝis la OLP estis ĝi pozas paradigmo.

programado strukturita problemoj

Kiel aplikoj fariĝis pli granda, programado strukturita komencas sperti malfacilaĵojn. Projektoj iĝi tro kompleksa. ŝanĝiĝis grafikaĵoj. Ĝi engaĝas grandan nombron da programistoj. La komplekseco kreskis. Kostoj pafi supren, la horaro estis ŝanĝita plu, kaj eliris el la kolapso.

Analizo de kaŭzoj de fiaskoj malkaŝis mankojn proceduraj paradigmo. Sen konsidero de kiel bone strukturita implementado programado aliro, grandaj aplikoj fariĝis tro kompleksa.

Kiuj estas la kaŭzoj de tiuj problemoj asociitaj kun proceduraj lingvoj? Unue, la funkcioj havas senliman aliron al tutmondaj datumoj. Due, nerilata proceduroj kaj malbonaj valoroj simuli la realan mondon.

Se ni konsideras ĉi tiujn aferojn en la kunteksto de inventaro librotenado programaro, unu el la plej gravaj elementoj de la tutmondaj datumoj estas aro de SKUs. Malsamaj funkcioj povas rilati al ili eniri novan valoron, ĝi estas montrata, ŝanĝoj kaj tiel. D.

senlima aliro

La programo skribita, ekzemple, en C, estas du tipoj de datumoj. Loka kaŝita ene de la funkcio kaj aliaj proceduroj ne estas uzata.

Kiam du aŭ pli funkcioj havas aliron al la samaj datumoj, tiu lasta devas esti tutmonda. Tiaj, ekzemple, estas prenitaj en rakontas informoj pri la temoj. La tutmonda datumoj povas esti ajna disponebla procedo.

En granda programo, estas multaj trajtoj kaj multaj tutmondaj elementoj. La problemo de la proceduraj paradigmo estas, ke ĝi kondukas al plej granda numero de eblaj ligoj inter ili.

Tia granda nombro de ligoj kaŭzas plurajn malfacilaĵojn. Unue, ĝi komplikas la komprenon de la strukturo de la programo. Due, malfacile ŝanĝi. Ŝanĝo en la tutmonda datuma elemento povas postuli ĝustigas de ĉiuj funkcioj kiuj havas aliron al ĝi.

Ekzemple, en la programo librotenado iu decidas ke respondecita celkodo devus konsistas ne de 5 ciferoj, kaj de 12 Tiu postulos ŝanĝon la datumtipo de mallongaj al longaj. Nun asociita kun la funkcio kodo devas esti modifita por labori kun la nova formato.

Kiam la elementoj estas ŝanĝitaj en pli granda apliko, estas malfacile diri kion proceduroj havas aliron al ili. Sed eĉ se tio figuron, ŝanĝante ilin povas rezulti en malĝusta operacio kun aliaj tutmondaj datumoj. Ĉio estas ligita kun ĉio alia, tiel ŝanĝo en unu loko miskarburi en alia.

Modeli la reala mondo

La dua kaj pli grava problemo de la proceduraj paradigmo estas ke lia ubicación specifa datumoj kaj funkcioj malbone simulas la aferoj en la reala mondo. Ĉi tie ni pritraktas objektoj kiel ekzemple homoj aŭ aŭtoj. Ili estas kiel neniu datumo aŭ la funkcio. Kompleksaj reala mondo objektoj havas atributoj kaj konduto.

atributoj

Ekzemploj de atributoj (kelkfoje nomitaj ecoj) por la homoj estas okulo koloro kaj la nomo de la poŝto, por aŭto - la potenco kaj nombro de pordoj. Kiel ĝi rezultis, la atributoj de la reala mondo ekvivalenta al la datumoj en la programo. Ili havas specifajn valorojn, kiel ekzemple blua (koloro de okuloj) aŭ kvar (la nombro de pordoj).

konduto

Konduto - estas ke la reala mondo objektoj produktitaj en respondo al ian efikon. Se vi demandas al estro por salajro kresko, la respondo estas "jes" aŭ "ne". Post premo sur la bremson, la aŭto haltos. Kaj haltante la eldiro kondutoj estas ekzemploj. Konduto simila al la procedo: oni nomas fari ion, kaj ĝi faras tiel. Tiel, la datumoj kaj funkcioj aparte ne modeligi la reala mondo objektoj efike.

Addressing

La celo en OOP estas reprezentita kiel aro de datumoj kaj funkcioj. Nur la proceduroj kiuj estas nomataj membro funkcioj en C ++, permesas akiri ĝian valoron. Ĉi tiuj estas kaŝitaj kaj protektitaj kontraŭ ŝanĝoj. Signifoj kaj funkcioj estas encapsuladas en unu. Encapsulación kaj upryatyvanie - bazaj terminoj en la priskribo de la objekteman lingvoj.

Se vi volas ŝanĝi la datumojn, ĝi scias precize kion funkcioj interagi kun ili. Neniu alia proceduroj ne povas aliri ilin. Ĉi simpligas skribo, depuración, kaj subtenante la programo.

Apliko tipe konsistas de pluraj objektoj kiuj interagas unu kun la alia, kaŭzante la membro funkcioj.

Hodiaŭ, la plej uzata lingvo OOP (programado orientita al celoj) - C ++ (plus plus). En Java mankas iuj karakterizaĵoj kiel punteros, ŝablonoj kaj multnombra heredaĵo, kiu igas malpli potenca kaj versátil ol C ++. C # ankoraŭ ne atingis la popularecon de C ++.

Ni notu, ke tiel nomataj membro funkcioj en C ++ nomas metodoj en iuj aliaj objekteman lingvoj kiel ekzemple Smalltalk. La datumoj eroj estas nomitaj atributoj. Vokas metodon de la objekto sendas lin mesaĝojn.

analogio

Vi povas imagi la celojn de la kompanio fakoj. En plej organizaĵoj, oficistoj ne laboras unu tago kun la stabo, la sekva overcharging salajron, kaj tiam semajne engaĝita en podetala komerco. Ĉiu fako havas propran bastono, kun klare asignita devojn. Ekzistas propra datumo: indikilojn de salajroj, vendoj, respondecante stabo, ktp Homoj en la fakoj labori kun ilia informo ... La divido de la kompanio, do, faciligas la kontrolon de liaj operacioj kaj ĝi subtenas datumoj integrecon. Librotenado respondecas pri la etaton. Se vi deziras scii la tutan kvanton de salajroj pagitaj al la suda branĉo en julio, ne bezonas enprofundiĝi en la arkivo. Sufiĉas sendi noton al la respondeca persono, atendu ĝis ke persono havas aliron al la datumoj kaj sendas la respondon al la petita informon. Tio certigas observon kun regularoj kaj la foresto de ekstera enmiksiĝo. Same objekton en la OLP provizas organizo aplikon.

Oni devas memori ke la orientiĝo de objektoj ne aplikeblas al detaloj de la laboro programo. Plej instrukcioj C ++ operatoroj respondas al la proceduraj lingvoj kiel C. Fakte, la membro funkcioj en C ++ estas tre simila al funkcioj en C. Nur la pli larĝa kunteksto permesos establi ĉu la instruon proceduraj aŭ objektema.

La celo en OOP: Difino

Kiam konsiderante la problemon de programado en lingvo orientita al celoj anstataŭ demandojn pri lia divido en apartaj funkcioj estas problemo en la disiĝo instalaĵoj. OOP pensado estas multe pli facile por disvolvi aplikojn. Ĉi tio estas pro la simileco de programaro kaj realaj objektoj.

Kia ajn estas objektoj en OOP? Jen kelkaj tipaj kategorioj.

Fizika objekto en OOP - estas:

  • transporto fluo modeloj;
  • elektraj komponantoj en la cirkvito dezajno programoj;
  • la landa ekonomio modelo;
  • aviadilo en la aero trafiko kontrolo sistemo.

Eroj de la medio de la uzanto komputilo:

  • menuo;
  • fenestroj;
  • grafiko (linio, rektangulo, cirklo);
  • klavaro, muso, presilo, diskoj.

personoj:

  • laboristoj;
  • studentoj;
  • klientojn;
  • vendistoj.

informoj:

  • libro plenumado;
  • privata afero;
  • vortaro;
  • tablo de latitudoj kaj longitudoj de kompromisoj.

Komunikado de reala mondo objektoj kaj la OLP estis la rezulto de kombinaĵo de funkcioj kaj datumoj ili revoluciis la programadon. Tia proksima matĉo en proceduraj lingvoj tie.

klaso

Objektoj en la OLP - klason membro. Kion tio signifas? Lingvoj de programado esti korpigita datumtipoj. Tipo int, t. E. Entjera kiu antaŭdeterminita en C ++. Vi povas deklari ajnan numeron de int variabloj.

Simile, pluralidad de objektoj difinitaj per unu klaso. Ĝi difinas la funkciojn kaj la datumoj inkludas en liaj instaladoj, ne kreas ilin, kaj ankaŭ int ne kreas variabloj.

Klaso en la OLP - priskribon de kelkaj similaj objektoj. Princo, Sting kaj Madonna estas la kantistoj. Ekzistas neniu, per tiu nomo, sed homoj povas diri tion, se ili havas la taŭgajn karakterizaĵojn. OOP objekto - tio ekzemple.

heredaĵo

En vivo, klasoj estas dividitaj en subklasoj. Ekzemple, bestoj estas dividitaj en amfibioj, mamuloj, birdoj, insektoj, ktp. D.

La principo de tiu speco de divido estas, ke ĉiu subklaso havas komunajn trajtojn kun la klaso de kiu la. Ĉiuj aŭtoj havas radojn kaj motoro. Jen la difinaj trajtoj de la veturiloj. Krom la ĝeneralaj karakterizaĵoj de ĉiu subklaso havas propran karakterizaĵoj. Estas multaj buso sidlokoj kaj kamionoj havas la spacon por porti grandajn pezojn.

Simile, iu baza klaso povas esti subklaso gepatroj pluraj derivaĵoj kiuj povas esti difinitaj kaj ili dividos liajn proprajn karakterizaĵojn kun la aldono. Heredaĵo kiel funkcioj, simplificando proceduraj programo. Se pluraj partoj de la kodo faras preskaux la samo, oni povas ekstrakti la komunajn elementojn kaj metis ilin en unu procedo. Tri aplikon areon povas nomi la funkcion plenumi komunajn agojn, sed ili povas produkti kaj liaj propraj operacioj. Simile, la bazo klaso enhavas informojn komuna al la grupo de derivaĵoj. Simila funkcio reduktas la heredaĵo de objektema programo kaj klarigi la rilaton de liaj elementoj.

reciklado

Iam la klaso estas kreita kaj elpurigita, ĝi povas esti transdonita al aliaj programistoj al reuzi en viaj propraj aplikoj. Estas kiel biblioteko de funkcioj kiuj povas inkludi en malsamaj aplikoj.

En OOP, heredaĵo estas etendaĵo de la ideo de multnombra uzo. El ekzistantan klason, sen ŝanĝi ĝin, ni povas formi novan unu kun la aldono de aliaj funkcioj. La facileco de re-uzo de ekzistantaj programaro - grava avantaĝo de la OLP. Oni kredas ke ĝi provizas kreskantan profitadon de la komenca investo.

Kreante novan datumtipoj

Instalaĵoj taŭga por la kreo de novaj datumtipoj. Supozu programon uzas dudimensia valoroj (ekz koordinatoj aŭ latitudo kaj longitudo), kaj havas deziron por esprimi la agon de aritmetiko sur ili;

position1 = pozicio + deveno,

kie position1, pozicio kaj origino - paro de sendependaj nombra valorojn. Krei klaso kiu inkludas tiujn du valoroj, kaj variablo deklaroj de lia objektoj kreas novan datumtipo.

Polimorfismo, superŝarĝi

Telefonistoj = (egala), kaj + (plus) uzita en aritmetiko pozicia supre ne agas tiel kiel korpigita tipoj, kiel ekzemple int. Pozicio objektoj, kaj aliaj. Ĉu ne antaŭdeterminita kaj starigis programaro. Kiel ĉi tiuj operatoroj scias kiel manipuli ilin? La respondo kuŝas en tio, ke novaj kondutoj eblas agordi por ili. Ĉi tiuj operacioj estos membro funkcioj klaso Pozicio.

Uzante telefonistoj aŭ proceduroj depende kion ili laboras estas nomita polimorfismo. Kiam estas operatoro, kiel + aŭ =, ricevas la ŝancon de labori kun la nova datumtipo, ĝi diras ke ĝi estas troŝarĝita. Superŝarĝas en la OLP - ia polimorfismo. Estas lia grava trajto.

Libro de la OLP "Objekto-Orientita Programado por Dummies" permesos ĉiuj konatigxi kun tiu temo en pli detalo.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 eo.unansea.com. Theme powered by WordPress.