Karakteriziran je objektno orijentirani programirani pad. Objektno orijentirano programiranje (OOP). Načelo opuštanja OOP-a i podklase

Pozdrav svima.

Tjedan članaka na web stranici posvećen OVP-u. Ostatak priče izazvao je u meni puno emocija i, nažalost, još pokvarenijih emocija. Nisam više bio vrijedan statusa. Zašto? Zato što prenosi sve vrste negativnih emocija i doprinosi razvoju ORP-a. Emocije su lišene činjenice da ljudi ne razumiju u potpunosti svu moć ORP-a i žele sve preuzeti od činjenice da je ORP zlo. Najgore je što ljudi počinju slušati i izbacivati ​​pohlepne dokaze da misle da se ništa korisno ne događa. Mislim da je takva statistika više kontraindicirana za studente nego što bih ja prije dao. :)

Da vidimo.

Što je ORP? OOP - ovo i GO programiranje i dizajn. Jedno bez drugog, sitnica više nego išta drugo. Izradio ORP za dizajn/programiranje softverskih proizvoda. Ovo nije za procese modeliranja. Ne za dizajn protokola, već za softverske proizvode i njihovu implementaciju. Da pojednostavimo sustav, kako implementirati protokol i poslovni proces upravo sada.

Ako počnete koristiti OOP, prva stvar koju morate učiniti je početi koristiti objekt misli. Kad smo već rekli da je najveći problem OVP, još je teže naučiti objektivno razmišljati. I vrlo je važno prethodno pročitati proces yakomaga (GoF s analogijama na vrstu mjesta, konstruktora, fasade također će pomoći u tome). S Vikoristovim predmetnim dizajnom možete jednostavno dizajnirati sklopive sustave. S Vikoristovim predmetom razmišljanja možete jednostavno dizajnirati bilo koji dizajn (važno je da dizajn/programiranje bude isti, jer je u načelu moguće dizajnirati apsolutno -yaku) rad s objektima i interakcija među njima. Tobto. OOP bez objektivnog razmišljanja neće vam dopustiti da počnete iskorištavati punu snagu OOP-a.

Idemo dalje. Dakle, važno je da razmišljamo objektivno kako bismo znali apstrakcije objekata koji su nam potrebni za postizanje naših ciljeva. Nakon što su analogije i apstrakcije uklonjene, sada imamo jasniju sliku koja nam omogućuje da brzo razumijemo što je u sustavu. I tu počinjemo razmišljati o nasljeđivanju i polimorfizmu. Ova dva alata neophodna su za ručno skaliranje sustava bez dupliciranja koda. Ali snaga ovih mehanizama leži u opsegu apstrakcija i analogija koje ste stekli. Ako vam vaš objektni mentalitet ne dopušta da formulirate ručnu dekompoziciju objekata, tada vam propadanje i polimorfizam neće pomoći. Tobto. Propadanje i polimorfizam nisu ništa više od alata koji rješavaju problem skaliranja sustava.

Kako ovi alati rade? Jednostavnije je od repe na pari, jer se sve temelji na nama poznatim govorima. Volim jednostavne primjere iz života:

1. Spadkuvannya. Ja sam pekar. I na struju i na plin. Vaš zadatak je modelirati proces pripreme sira kao pekač u pećnici s kožicom. Što je najvažnije, imat ćemo puno dupliciranja koda kroz činjenicu da je proces njegovog prijenosa u pećnicu i sam rad pećnica identičan za obje pećnice. Ako uključimo predmet razmišljanja i prisjetimo se alata za redukciju, tada ćemo ga ukloniti otprilike na početku (dijagram je premalen, oprostite):
Ê pích (apstraktni pích). Postoji ponašanje - uključiti, uključiti, povećati i promijeniti temperaturu, mjesto što, što i što - temperatura u pećnici, uključiti i isključiti. Ovo je važna primjena apstraktnog objekta u nekom pogledu na načela enkapsulacije (moram ih se pridržavati kada ih implementiram). Ja sam pekar, specifičan pekar Ivan. Vin zna kako raditi s apstraktnim jezikom. Tobto. Provjerite temperaturu, uključite grijač itd. došao si k sebi. Snaga sigurnosti leži u činjenici da nećemo imati priliku prepisati našeg Ivana za kožne peći, bilo električne ili plinske peći. Mislim da je svima jasno zašto? Ispada da je alat za ostosovaniye ispravan.
2. Polimorfizam. Čak i pećnice rade na različite načine. Plin gori plin, elektrika gori struju. Vikorist i polimorfizam, lako mijenjamo ponašanje u kompaktorima apstraktne pećnice.
3. Enkapsulacija. Glavna prednost enkapsulacije je ta što ne moram znati što se događa u sredini moje pećnice. Ja recimo ne kliknem na metodu za paljenje štednjaka, nego na promjenu snage, koja je uključena na vrijednost true. Što će se s njom dogoditi u ovom trenutku? Kao princip enkapsulacije ne-pregovaranja, onda ću vam reći da počnete živjeti u spavaćoj sobi, jer Reći ću ti. Tobto. Pekar zna što pekar radi u spavaćoj sobi, on zna kako pekar radi. Ili, na primjer, ne možemo ni u jednom trenutku postaviti nižu ili višu temperaturu pećnice. Ako se ne pridržavamo principa kapsuliranja, onda bismo morali reći pećnici da provjeri temperaturu, pa što? Tobto. Pekar sada zna mnogo o pećnicama. Getteri i postavljači značajke su koje će nam pomoći da jednostavno implementiramo promjene. To je to. Budući da su hetera i postavljač prazni, to znači da je to potrebno u mojoj jednakoj apstrakciji. Getteri i postavljači ne mogu utjecati na implementaciju enkapsulacije; dizajner/programer može implementirati enkapsulaciju na pogrešan način.

U čijoj je primjeni odabrana apstrakcija dobra. Svatko gleda svoja posla, sva tri stupa PLO-a daju sve od sebe. Ale varto me odabrati prljavu apstrakciju, jer pravi problem počinje. A ovdje su standardi razlikovanja koji će vam pomoći da shvatite jeste li odabrali prave apstrakcije i je li vaša dekompozicija točna u smjeru u kojem idete (SOLID).

Također su počeli dodavati apstrakciju kao još jedan stup OOP-a. Mislim da je švedski, ali još više miriše na KEP.

Već su mi rekli o tipkanju. S desne strane nema svakodnevnih problema za osobu s kojom radite tijekom recesije. Baš kao što vam je na sadašnjoj razini apstrakcije važno vikorizirati radnju, onda vam to nije važno. Hoćeš li prestati peći? Stvarate li svoje snove? To je to... Što te briga što me ova dinamična tipizacija ne razumije. Jeste li htjeli ispeći? Uzmi. Trebate struju? Pa, vidi, više nećeš dobiti benzin.

Ostali opušci, koji su uneseni u statistiku koja mi je dodijeljena, bez opušaka odgovarajuće apstrakcije i analogije u okviru postavljenog zadatka. Speck.

Okremo za DTO. DTO – uzorak lanca. Omogućuje vam stvaranje objekta koji može prenijeti informacije na drugu loptu, drugi sustav, ukratko, gdje ih prenijeti. Zašto na to ne mogu gledati kao na objekt postalo mi je misterij. Gdje je superness? Što je u spremniku? Pa što?? Ovaj objekt je unutar okvira objektnog modela koji sam ispitao na danoj razini apstrakcije, gdje je DTO objekt i dio dekompozicije.

Također nije jasno što reći o jeziku. Mogu dizajnirati softver, softver i pristup temeljen na objektima neovisno o jeziku. Ako ne implementira osnovne alate za rad s objektima, bilo bi teško ili nemoguće implementirati sustav koji sam dizajnirao.

Također bi se činilo da se radnje govora ne mogu otkriti iz izgleda predmeta i njihovih međusobnih odnosa. Pitam se što nije u redu. Vi samo trebate odabrati pravu apstrakciju. Bilo da se radi o implementaciji protokola, kuglici za pristup bazi podataka, dodacima za povezivanje, upravitelju zadataka, poslovnom procesu, sustavu za dizajn poslovnih procesa itd. sve što se lako može identificirati kao objekt i njihova međusobna interakcija. Sve se može implementirati kao objekti i interakcija između njih. Dobro i loše najčešće leže izvan dosega vašeg uma da objektivno razmišljate.

U sažetku. Ako ne razumijete snagu ORP-a, onda, nakon što ste sve vidjeli, trebate razviti objektivan um.

p.s. U komentarima prije prošlog članka očito sam otišao predaleko u brutalnosti stvarnih ljudi. pitat ću opet.

Zašto je objektno orijentirano programiranje izvrsno u većini projekata? OOP predlaže učinkovit način za borbu protiv ove složenosti. Umjesto da na program gleda kao na niz pisanih uputa, on predstavlja skupinu objekata s određenim ovlastima i s njima izvodi određene radnje. Ovo je za stvaranje jasnijih, pouzdanijih dodataka koje je lako pratiti.

Osnovna načela nastala su zbog činjenice da su u drugim pristupima postojale razlike. Među njima je nedostatak pristupa podacima i velik broj veza koje nameću ograničenja za unošenje promjena. Njihova svijest o ovim razlozima je važna kako bi razumjeli da ORP ima takve prednosti kao programirane.

Proceduralni filmovi

C, Pascal, FORTRAN i slični jezici su proceduralni. Ovo je mjesto gdje operater daje upute računalu da učini ono što radi: ukloni podatke, zbroji brojeve, podijeli sa šest, prikaže rezultat. Moj proceduralni dodatak je popis uputa. Budući da je mali, nema potrebe za drugim organizacijskim principom (često se naziva paradigma). Programer stvara popis uputa, a računalo ih sprema.

Ovisno o funkciji

Kako programi postaju veći, popis postaje glomazan. Malo ljudi može razumjeti više od stotine uputa bez grupiranja. Iz tog razloga, funkcija je postala način da se programi učine inteligentnijim za njihove kreatore. U drugim se jezicima isti koncept može nazvati potprogramima ili procedurama.

Program je podijeljen na funkcije od kojih svaka ima jasno označeno sučelje.

Ideja podjele postupaka može se proširiti njihovim grupiranjem u veći objekt koji se zove modul, ali princip je sličan: grupiranje komponenti koje tvore popise uputa.

Fokus na funkcije i module jedan je od vanjskih kamena strukturalnog programiranja, koje je bilo paradigma prije željeza nekoliko desetljeća prije pojave ORP-a.

Problemi strukturnog programiranja

Fragmenti programa postali su veći, a strukturno programiranje počelo se suočavati s poteškoćama. Projekti su postali sklopiviji. Rasporedi su se rušili. Uključilo se više programera. Povećala se sklopivost. Potrošnja je rasla, raspored se srušio i počeo je kolaps.

Analiza razloga za te neuspjehe pokazuje nedostatke proceduralne paradigme. Bez obzira na stupanj u kojem su pristupi strukturiranju programiranja dobro implementirani, izvrsni programi postaju nevjerojatno složeni.

Koji su uzroci ovih problema povezanih s proceduralnim jezikom? Prije svega, funkcije možda nemaju pristup globalnim podacima. Drugim riječima, procedure i vrijednosti nisu međusobno povezane i loše modeliraju stvarni svijet.

Za promatranje ovih problema u kontekstu programa inventara, jedan od najvažnijih globalnih elemenata podataka je ukupnost jedinica inventara. Na njih se mogu proširiti razne funkcije za unos nove vrijednosti, prikaz, promjenu itd.

Neograničen pristup

Program napisan, na primjer, u C-u, ima dvije vrste podataka. Lokalni pozivi u sredini funkcije i drugi postupci nisu pogođeni.

Ako su dvije ili više funkcija odgovorne za zabranu pristupa istim podacima, preostale mogu biti globalne. Takvi su, primjerice, podaci o stvarima koje je potrebno osigurati. Globalni podaci mogu biti dostupni svakom postupku.

Sjajan program ima mnogo funkcija i mnogo globalnih elemenata. Problem s proceduralnom paradigmom je taj što stvara još više potencijalnih veza između njih.

Tako velik broj priključaka iziskuje niz poteškoća. Prije svega, čini strukturu programa složenijom. Drugim riječima, otežava uvođenje promjena. Promjena globalnog podatkovnog elementa može promijeniti sve funkcije koje mu mogu pristupiti.

Na primjer, program želi vjerovati da se šifra osiguranog artikla ne smije sastojati od 5 znamenki, već od 12. Zbog toga biste trebali promijeniti s kratke na dugu. Sada se funkcije povezane s kodom mogu promijeniti kako bi radile s novim formatom.

Kada se elementi mijenjaju u velikom programu, važno je reći koje im procedure mogu pristupiti. Međutim, kao što razumijete, ova promjena može rezultirati netočnom obradom drugih globalnih podataka. Sve je povezano, pa će promjena na jednom mjestu rezultirati drugim.

Modeliranje stvarnog svijeta

Drugi je najvažniji problem proceduralne paradigme i onih koji se odnose na obradu podataka, te funkciju lošeg modeliranja govora u svijetu. Ovdje se možemo baviti takvim objektima kao što su ljudi i automobili. Mirisi nisu slični ni po podacima ni po funkciji. Složeni stvarni objekti imaju atribute i ponašanje.

Atributi

Primjeri atributa (ponekad zvanih karakteristika) za ljude su boja očiju i naziv sjedala, za automobile - debljina i broj vrata. Kako se pokazalo, atributi stvarnog svijeta jednaki su onima programa. Smrad ima specifična značenja, kao što je plavo (boja očiju) ili broj vrata.

Povedinka

Ponašanje - oni koji se objekti stvarnog svijeta boje bilo kakvog priljeva. Pitate li svog šefa o povećanju plaće, odgovor će biti isti. Kad pritisnete krov, auto počinje teturati. Vimova zub i kundaci ponašanja. Slično je i ponašanje prije zahvata: zovu da naprave ovo, pa onda da naprave ovo. Stoga te funkcije ne modeliraju učinkovito objekte stvarnog svijeta.

Rješavanje problema

Objekt u OOP-u predstavljen je kao zbirka podataka i funkcija. Samo vam procedure koje se nazivaju C++ funkcije članice omogućuju uklanjanje vrijednosti. Podaci su primljeni i ukradeni iz promjene. Vrijednosti i funkcije su uklopljene u jednu cjelinu. Enkapsulacija i skladištenje glavni su pojmovi u opisu GOM-ova.

Ako trebate promijeniti podatke, jasno je koje funkcije s njima stupaju u interakciju. Nikakvi drugi postupci ne mogu uskratiti pristup njima. To će olakšati pisanje, poboljšanje i podršku programa.

Dodavanje se sastoji od nekoliko objekata koji međusobno djeluju jedan na jedan, uključujući funkcije članice.

Danas je najraširenije programiranje C++ (plus-plus). Java ima niz funkcija, kao što su prikazi, predlošci i višestruke kombinacije koje je čine lakšom i univerzalnom od C++. C# je još uvijek nadomak popularnosti C++-a.

Imajte na umu da se ove C++ funkcije članice nazivaju metode u mnogim drugim GO-ovima, kao što je Smalltalk. Ti se elementi nazivaju atributima. Kliknite na metodu objekta za obavijest.

Analogija

Možete identificirati objekte odjela tvrtke. U većini organizacija vojno osoblje zbog svoje plaće ne radi jedan dan kao osoblje, a ostatak dana provodi u trgovini na malo. Važno je osigurati da svo njegovo osoblje bude pažljivo postavljeno na svoje uveze. Ovo su najnoviji podaci: pokazatelji plaća, prodaje, profila zapošljavanja itd. Ljudi u odjelima rade sa svojim informacijama. Podjela tvrtke na ovaj način olakšava kontrolu njezinih aktivnosti i održava cjelovitost podataka. Računovodstvo potvrđuje da ako trebate znati ukupan iznos plaća koje se isplaćuju vašoj sadašnjoj obitelji, ne morate kopati po arhivi. Sve što trebate učiniti je poslati poruku osobi od povjerenja, provjeriti dok ta osoba nema pristup podacima i pronaći potvrdu potrebnih informacija. To jamči usklađenost s propisima i odsutnost isporuke treće strane. Dakle, sam objekt u PLO će osigurati organizaciju izvješća.

Važno je zapamtiti da orijentacija prema objektu nije ograničena detaljima robotskog programa. Većina C++ naredbi slična je naredbama proceduralnih naredbi kao što je C. Zapravo, C++ funkcije članice prilično su slične onima u C. Samo širi kontekst dopušta da se ustanovi što je proceduralna naredba ili ne.orijentirana na subjekt.

Objekt u OOP-u: značenje

Gledajući zadano programiranje na GO-mov, zamjenjujući napajanje drugim funkcijama, postoji problem s vezom na objekte. OOP dizajn uvelike pojednostavljuje razvoj dodataka. To je zbog sličnosti između softvera i stvarnih objekata.

Kakvi govori postaju objekti u OVP-u? Ispod su tipične kategorije.

Fizički objekt u ORP-u je:

  • transport u ruhu flow modelima;
  • električni elementi u programima za projektiranje sklopova;
  • rubovi ekonomskog modela;
  • To je također slučaj sa sustavom za kontrolu vjetra.

Elementi jezgre računala korisnika:

  • Jelovnik;
  • vikna;
  • grafika (linija, pravokutnik, boja);
  • tipkovnica, miš, pisač, diskovi.
  • pratsívniki;
  • studenti;
  • klijenti;
  • Prodavači.
  • izgled knjige;
  • specijalni časnik s desne strane;
  • rječnik;
  • tablica geografskih širina i dužina naseljenih područja.

Veza između objekata u stvarnom svijetu i ORP-a postala je rezultat kombiniranih funkcija i podataka: smradovi su napravili revoluciju u programiranju. Ne postoji takva sličnost u proceduralnim jezicima.

Klasa

Objekti u OVP-u su članovi klasa. Što to znači? Vaši programi mogu imati integrirane tipove podataka. Tip int je cijeli broj u C++. Možete objaviti koliko se promjena može napraviti svake godine.

Na sličan način, ne postoje objekti iste klase. To znači da su funkcije i podaci uključeni u objekte koji ih ne stvaraju, baš kao što int ne stvara promjene.

Klasa u OVP je opis vrlo sličnih objekata. Princ, Sting i Madonna sa spivacima. Nema puno ljudi s takvim imenima, ali ljudi se mogu tako zvati jer imaju slične karakteristike. OOP objekt je instanca klase.

smirujući se

Živi razredi dijele se na podrazrede. Na primjer, stvorenja se dijele na vodozemce, ptice, ptice, kome itd.

Princip ove vrste potklase leži u činjenici da klasa kože ima različite karakteristike od klase koja je slična jedna drugoj. Svi automobili peru kotače i motore. To su početne karakteristike prometnih objekata. Osim jedinstvenih karakteristika kože, podklasa ima svoje osobitosti. Autobusi imaju dovoljno prostora, a kombiji imaju mjesta za prijevoz važnih stvari.

Slično tome, osnovna klasa može postati otac mnogih sličnih podklasa, koje se mogu definirati na takav način da odvajaju njezine karakteristike od onih koje su dodali autoriteti. Svođenjem na funkciju pojednostavit će se proceduralni program. Ako morate rastaviti nekoliko dijelova koda u isto vrijeme, možete izdvojiti skrivene elemente i smjestiti ih u jednu proceduru. Tri programa mogu koristiti ovu funkciju za otkazivanje svojih aktivnosti ili mogu otkazati vlastite operacije. Slično je ovoj osnovnoj klasi za osvetu podataka, skrivenih za skupinu lutalica. Slično funkciji redukcije, skraćuje program GO i pojašnjava međusobne veze njegovih elemenata.

Opetovano vikoristannya

Štoviše, kao klasa kreacija i pogodnosti, mogu se prenijeti u druge programe za ponovnu upotrebu državnih dodataka. Ovo je slično biblioteci funkcija koje se mogu uključiti u razne programe.

U ORP-u, pad je proširena ideja vikoristike bogatog vremena. Za ovu klasu, bez mijenjanja, možete stvoriti novu s dodatnim funkcijama. Lakoća ponovne implementacije izvornog PP-a važna je prednost OOP-a. Važno je da će to osigurati povećanje profitabilnosti od početnih ulaganja.

Stvaranje novih vrsta podataka

Objekti su zgodni za stvaranje novih vrsta podataka. Pretpostavimo da program ima dvodimenzionalne vrijednosti (na primjer, koordinate ili zemljopisnu širinu i dužinu) i treba ih obraditi pomoću aritmetičkih operacija:

položaj1 = položaj + ishodište,

de í origin – parovi nezavisnih numeričkih vrijednosti. Stvaranje klase koja uključuje dva značenja i uništavanje njezinih varijabilnih objekata stvara novu vrstu podataka.

Polimorfizam, transformacija

Operatori = (jednako) i + (plus), koji imaju koristi od pozicijske aritmetike, ne rade isto kao s izvedenim tipovima kao što je int. Objekti položaja se ne dodjeljuju, već se postavljaju softverski. Kako se ti operateri znaju nositi s njima? Dokaz je da im se mogu dati novi obrasci ponašanja. Ove operacije bit će funkcije članice klase Position.

Varijacija operatora i procedura ovisno o tome s čime rade naziva se polimorfizam. Ako osnovni operator kao što je + ili = ukloni mogućnost rada s novom vrstom podataka, čini se da nema ponovne implementacije. Ponovno zamišljanje OOP-a je vrsta polimorfizma. Vona jede ovu važnu rižu.

Knjiga o ORP-u “Objektno orijentirano programiranje za lutke” omogućit će svima koji žele da se upoznaju s ovom temom izvješća.

Osnovni principi i stupnjevi objektno orijentiranog

programiranje

U teoriji programiranja OOP se definira kao tehnologija za stvaranje složenog softvera koji se temelji na zadanim programima u obliku skupa objekata, od kojih svaki ima instancu jednog tipa (klase), i klasa koje stvaraju hijerarhiju h

opadanje moći.

Interakcija programskih objekata u takvom sustavu odvija se metodom prijenosa.

Bilješka. Takva manifestacija programa prvi put se pojavila u simulaciji sklopivih sustava Simula, koji se pojavio još 60-ih godina.

Prirodan način da se naše modeliranje predstavi programima, povukavši razvoj u druga specijalizirana modeliranja - Smalltalk (70-ih), a zatim

Strana 2 od 51

Glavne zasjede PLO-a

Recenzije za nove verzije univerzalnih programskih jezika, kao što su Pascal, C++,

Glavna prednost ORP-a- skraćivanje broja međumodulskih poziva i mijenjanje količine informacija koje se prenose između modula,

u skladu s modularnim programiranjem. To se postiže većom lokalizacijom podataka i integracijom s rutinama obrade,

što omogućuje praktički neovisnu disekciju raznih dijelova

(objektivan) program.

Osim toga, objektivni pristup promiče nove metode tehnološkog razvoja, kao što su pad, polimorfizam, sastav, površina,

što vam omogućuje lakše projektiranje sklopivih predmeta. Kao rezultat toga, pokazatelj ponovnog ispravljanja kodova značajno se povećava,

Pojavljuje se mogućnost stvaranja biblioteka objekata za različita stanja stagnacije, a programeri se nadaju dodatnim mogućnostima stvaranja sustava napredne sklopivosti.

Glavni nedostatak OOP-a je mogućnost smanjenja brzine koda dodatnom sklopivom organizacijom softverskog sustava.

OOP se temelji na sljedećim principima: apstrakcija,

dijeljenje pristupa, modularnost, hijerarhija, tipizacija, paralelizam,

izdržljivost.

Pogledajmo što je princip kože.

A b s t r a g i r o v a n i- proces viđenja apstrakcije u objektivnom polju. Apstrakcija je ukupnost stvarnih karakteristika predmeta, koje ga razlikuju od drugih vrsta objekata i,

na taj način se daljnjim pogledom i analizom jasno prepoznaju osobitosti danog objekta. Očito je da apstrakcija stvarnog predmeta mora ostati u obliku neodgonetnute zadaće: u jednom slučaju određujemo oblik predmeta, u drugom, u

trećoj - materijali od kojih je podijeljena, četvrtoj - zakon propasti

Strana 3 od 51

Glavne zasjede PLO-a

predmet, itd. Aktualni nalet apstrakcije prenosi ujedinjenje svih moći apstrakcije (čim postanem analizirani objekt,

Tako označavamo njegovo ponašanje) u jednu programsku cjelinu

apstraktni tip (klasa).

Ograničenja pristupa- uključivanje različitih elemenata provedbe apstrakcije, čime se ne oduzimaju bitna obilježja cjeline.

Potreba za međusobnim povezivanjem pristupa dovodi do odvajanja dva dijela opisa apstrakcije:

sučelje - ukupnost dostupnih elemenata poziva implementacije apstrakcije (glavne karakteristike ponašanja);

implementacija - skup nedostupnih elemenata implementacije apstrakcije (unutarnja organizacija apstrakcije i mehanizmi ponašanja).

Razmjena pristupa OOP-u omogućuje programeru da:

Konstruirajte dizajn sustava korak po korak, ne fokusirajući se na specifičnu implementaciju apstrakcije koja se razvija;

Lako je modificirati implementaciju određenih objekata koji bi, ako su pravilno organizirani, zahtijevali promjenu drugih objekata.

Objedinjavanje svih moći objekta (koje će postati njegovo ponašanje) u jednu apstrakciju i ograničavanje pristupa implementaciji tih moći nazvano je enkapsulacija.

M o d u l n o s t- princip razvoja programskog sustava,

koji implementaciju prenosi u obliku zasebnih dijelova (modula). Kod dekompozicije sustava na module važno je spojiti logički povezane dijelove, kako bi se broj vanjskih veza između modula mogao sigurno skratiti. Načelo opadanja

Strana 4 od 51

Glavne zasjede PLO-a

modularno programiranje, slijedeći ovo će pojednostaviti dizajn i

razvoj softvera

Hijerarhija - rangirani ili uređeni sustav apstrakcija.

Načelo hijerarhije prenosi se kroz povijest hijerarhije razvoja programskih sustava.

Postoje dvije vrste hijerarhije u OOP-u.

Hijerarhija “cjelina/dio”- Označava da su uključene određene apstrakcije

Pogledajmo apstrakciju kao njezine dijelove, na primjer, svjetiljka je presavijena u postolje, niti su pečene i žarulje. Ova verzija hijerarhije razvija se u procesu razvoja sustava u različitim fazama projektiranja (logički - kada se predmetno područje rastavlja na objekte, fizički - kada se sustav rastavlja na modul i kada se promatraju povezani procesi u višeprocesnom sustavu). ).

Hijerarhija “iza kulisa/privatno”- pokazuje da je ova apstrakcija nadopunjena drugom apstrakcijom, na primjer, "ukupna tablica -

određena vrsta stola” i “stolovi su posebna vrsta namještaja”. Vikorist na

proširenje strukture razreda, ako će se složeni razredi temeljiti na jednostavnijim dodavanjem novih karakteristika i, eventualno, pojašnjavanjem postojećih.

Jedan od najvažnijih mehanizama OVP-a je pad moći u tajnoj/privatnoj hijerarhiji. Kondenzacija je također odnos između apstrakcija, ako je jedna od njih strukturni ili funkcionalni dio druge ili nekoliko drugih apstrakcija (jednostavnih i višestrukih)

opuštanje).

T i p i z a s i i - razmjena koja se nameće moći predmeta i

koji križa zamjenjivost apstrakcije različitih vrsta (ili je mogućnost takve zamjene vrlo jaka). U jezicima sa strogom tipizacijom objekta programa kože (promjena, potprogrami, parametar itd.)

čovjek se šokira tipom koji znači neinvazivnu operaciju na

Strana 5 z 51

Glavne zasjede PLO-a

kao zaseban programski objekt. Gore spomenuto programiranje temeljeno na Pascalu je vikoryst, a temeljeno na C-u -

srednji stupanj tipizacije.

Pridržavanje načela tipkanja osigurat će:

rano otkrivanje grešaka povezanih s neprihvatljivim operacijama na programskim objektima (prekidi se otkrivaju u fazi kompilacije programa prije provjere dopuštenosti bilo koje operacije na softverskom objektu);

pojednostavljena dokumentacija;

Mogućnost generiranja učinkovitog koda.

Tip se može pridružiti programskom objektu statički (tip objekta se određuje u fazi kompilacije - rano povezivanje) i dinamički (tip objekta se određuje tek nakon pokretanja programa - kasnije povezivanje). Implementacija kasne komunikacije u našem programiranju omogućuje kreiranje promjena - indikatora na objektima koji pripadaju različitim klasama (polimorfni objekti),čime se bitno proširuju mogućnosti jezika.

P a r a l e l i z m- tada se snaga niza apstrakcija istovremeno prenosi na aktivnu pozornicu. poništiti sve operacije.

Postoji cijeli niz niskih redova, od kojih je najvažniji neposredan završetak određenih nizova radnji. Do ovakvih dana pred nama,

Na primjer, čini se da postoji zadatak automatske obrade niza procesa.

Pravi paralelizam se postiže pri implementaciji zadatka ove vrste na višeprocesorskim sustavima, ako je moguće kontrolirati proces kože s istim procesorom. Sustavi s jednim procesorom imaju paralelizam za dijeljenje pola sata procesora između pokretanja različitih procesa. Ovisi o vrsti odabranog operativnog sustava (jednoprogramski ili višeprogramski)

Strana 6 z 51

Glavne zasjede PLO-a

Oko sat vremena možemo završiti sa sustavom koji se raspada (kao u

MS DOS), ili vlasnički OS (poput Windows sustava).

U s h i s t- moć apstrakcije proizlazi neovisno o procesu koji dovodi do određenog softverskog objekta i/ili o prostoru koji se kreće od adresnog prostora do vrste stvaranja.

Podijeliti:

∙ objekti temeljeni na vremenu koji spremaju međurezultate radnji, na primjer, proračun;

∙ lokalni objekti koji postoje u sredini potprograma, sat njihovog života računa se od odgovora potprograma do njegovog završetka;

∙ globalni objekti, očito je program još uvijek fasciniran misterijom;

∙ objekti koji se spremaju, podaci iz kojih se spremaju u vanjske memorijske datoteke između sesija računalnog programa.

Svi principi definirani su na isti način kao što su implementirani u različitim verzijama objektno orijentiranih računala.

Objektno orijentirano programiranje. Jezik je važan objektno orijentirano,Kao iu novoj implementaciji, provode se prva načela od sedam gore navedenih načela.

Posebno su popularni Delphi i C++Builder objektni modeli. Ovi modeli ažurirani su OOP-om za MS DOS i uključuju neke nove značajke,

kako bi se osiguralo učinkovito stvaranje sklopivih sustava. Na temelju tih modela kreirana su vizualna okruženja za razvoj Windows programa.

Lakoća programiranja u sustavu Windows postala je očita

smanjiti troškove stvaranja posebnih knjižnica objekata koji "pohranjuju" puno elemenata tehnologije programiranja.

Strana 7 z 51

Glavne zasjede PLO-a

Faze razvoja programskih sustava iz OOP-a temeljenog na wikiju.

Proces razvoja softvera s ORP podacima uključuje nekoliko faza: analiza, dizajn, evolucija, modifikacija.

Pogledajmo faze.

A na liz. Meta-analiza - najpotpuniji opis biljke. U ovoj fazi završava analiza predmetnog znanja, objektna dekompozicija sustava koji se raščlanjuje i identificiraju se najvažnije značajke ponašanja objekata (opis apstrakcije). Nakon rezultata analize, strukturni dijagram softverskog proizvoda je rastavljen, prikazujući glavne objekte i informacije koje se prenose između njih, a također završava opisom apstrakcije.

Oblikovati. Podijeliti:

logičniji dizajn, Kad god se donese odluka, praktično je ne lagati u mislima o radu (operativnom sustavu i opremi);

fizički dizajn, Tko god je svoju braću častio imenovanim dužnosnicima.

Logičniji dizajn leži u razvoju strukture razreda:

identificiraju se polja za pohranjivanje skladišnih objekata i algoritmi metoda te implementiraju aspekti ponašanja objekata. U ovom slučaju gledamo stvari koje gledamo i prihvaćamo podjelu klasa (smanjenje,

sastav, površina, polimorfizam itd.). Rezultat je hijerarhija ili dijagram klasa koji odražava međusobne veze klasa i opis klasa.

Fizički dizajn uključuje kombinaciju opisa klasa za modul, odabir shema njihovog povezivanja (statički ili dinamički raspored), odabir načina interakcije s opremom,

operativni sustav i/ili drugi softver (npr.

baze podataka, programi za rubne trake), osiguravanje sinkronizacije procesa za sustave paralelne obrade itd.

Strana 8 z 51

Glavne zasjede PLO-a

Razvija se s tim. Ovo je proces implementacije korak po korak i

Povezivanje nastave s projektom Proces započinje izradom glavnog programa i projekta nadolazećeg softverskog proizvoda. Zatim se klase implementiraju i povezuju, tako da se napravi gruba, ili, ako je moguće,

radni prototip nadolazećeg sustava. Testiran je i poboljšan.

Na primjer, takav prototip može biti sustav koji uključuje implementaciju glavnog sučelja softverskog proizvoda (prijenos obavijesti o tome da dio sustava nije finaliziran). Kao rezultat toga, odabiremo prototip za proizvod, koji može biti naznačen, na primjer, radi pojašnjenja. Zatim je grupa klasa povezana sa sustavom, na primjer, povezana s implementacijom stavke glavnog izbornika.

Alternativna opcija se također testira i poboljšava, i tako dalje dok se ne iskoriste sve mogućnosti sustava.

Ova implementacija korak po korak značajno pojednostavljuje testiranje i razvoj softverskog proizvoda.

Izmjena. Ovo je proces dodavanja novih funkcionalnih mogućnosti i mijenjanja temeljnih moći sustava. Kao pravilo,

Promjene dovršavaju implementaciju klase, napuštajući je bez promjene njezinog sučelja, tako da se vicoristan ORP može izbjeći bez ikakvih posebnih neugodnosti, budući da proces promjene uključuje lokalno područje.

Promjena sučelja također nije težak zadatak, inače bi ovo rješenje moglo zahtijevati poboljšanje procesa za interakciju objekata koji zahtijevaju promjene u drugim klasama programa. Međutim, skraćivanje niza parametara u dijelu sučelja u skladu s modularnim programiranjem uvelike pojednostavljuje ovaj proces.

Jednostavnost modifikacije omogućuje laku prilagodbu softverskih sustava načinu rada koji se mijenja kako se više sati životnog vijeka sustava troši na čiji razvoj se troši mnogo vremena i materijalnih resursa.

Strana 9 z 51

Glavne zasjede PLO-a

Osobitosti OOP-a su i one da se objekt ili grupa objekata mogu zasebno izdvojiti, a njihovo projektiranje također može biti izvedeno u različitim fazama. Na primjer, klase sučelja već su implementirane, ali se struktura klasa domene još specificira.

Dizajn počinje kada je bilo koji fragment predmetnog područja u potpunosti opisan u procesu analize.

Pogled na glavne tehnike objekta temeljenog pristupa ilustriran je dekompozicijom objekta.

Dekompozicija objekta

Kao što smo već pogodili, korištenjem moderne OOP tehnologije, rješenje dolazi iz pogleda rezultat međudjelovanja nekoliko funkcionalnih elemenata svaki sustav koji ima procese,

koje je predmetno područje zadatka.

Takav kožni sustav ima funkcionalni element koji odbija svaki ulazni tok (koji se naziva informacijama) u procesu najvažnijeg zadatka.

poništava radnju pjesme (na primjer, možete promijeniti strukturu moći, eliminirati kalkulacije, sastaviti raspored i uključiti druge elemente). Proces rješava zadatak Podaci o nizu. Prijenosom informacija od elementa do elementa, sustav odabire potrebne akcije.

Funkcionalni elementi sustava, čiji su parametri i ponašanje dodijeljeni mentalnom zadatku koji može dovesti do neovisnog ponašanja

(kako bi se “zaključile” radnje koje leže u obliku elementa), uklonjen je naziv objekata.

Proces predstavljanja predmetnog područja kao skupa objekata za razmjenu informacija naziva se dekompozicija objekta.

Strana 10 z 51

Glavne zasjede PLO-a

Kako bi se razumjelo o kakvim se objektima raspravlja u konačnoj dekompoziciji objekta u svakom konkretnom slučaju, potrebno je razumjeti početni objektni pristup za razvoj imitacije različitih modela ponašanja sklopivih sustava. Skup objekata takvih sustava određuje se prilikom analize procesa koji se modeliraju.

kundak. Dekompozicija objekta (simulacijski model

benzinske postaje). Molimo Vas da nas više ne brinete o količini preostalog goriva na benzinskoj postaji zbog broja benzinskih postaja, parametara servisiranja skin benzinske postaje i intenziteta zahtjeva za točenjem goriva (gledamo jednu vrstu goriva ).

Očekuje se da se zadatak ove vrste oslanja na korištenje imitacijskih modela. Model programski predstavlja stvarni proces sa zadanim parametrima, a istovremeno bilježi njegove karakteristike. Ponavljanjem procesa simulacije s različitim vrijednostima parametara za servisiranje i zaprimanje zahtjeva, istraživač odabire specifične vrijednosti karakteristika koje će biti grafovi analize ležišta.

Proces rada benzinske postaje s tri punionice može se prikazati na sljedećim dijagramima.

U svijetu se sofisticirana računalna tehnologija i računala počela koristiti za složenije zadatke. Pokazalo se da je povećanje broja zadataka savijanja važno zbog računalne složenosti računala i učinkovitosti pisanja programa za savijanje. Objektno orijentirano programiranje(OOP) Vinik je sam po sebi učinkovit način rješavanja poteškoća koje nastaju prilikom izrade sklopivih programa.

Najznačajniji dio OOP-a je poseban pristup složenim programskim zadacima, tzv objektno orijentirana analiza, A objektno orijentirano programiranje jednostavno je zgodan alat za implementaciju ovog pristupa.

Povijest

Osnivači PLO-a su slavni Norvežani Cristen Nygaard i Ole-Johan Dahl. Radeći na simulacijama brodogradnje, Nygaard je shvatio da su osnovne značajke softvera neučinkovite u stvaranju tako složenih programa, pa je Nygaard počeo razvijati koncepte za novo programiranje koje bi omogućilo podizanje letvice zbog sklopivosti i kako je nazvano po prvi put. objektno orijentirano(Sam izraz je skovao Alan Kay, autor jezika Java). Zajedno s Ole-Johanom Dahl Nygaardom analizirali smo osnovne principe ORP-a i praktične mehanizme za njihovu implementaciju, koje je potom razvila prva ORP Simula. Zasluge ovih znanstvenika visoko je cijenila svjetska znanstvena zajednica, a 2001. godine Nygaard i Dahl postali su laureati Nagrade Alan Turing - svojevrsnog analoga Nobelove nagrade za informatiku.

Mova Simula je stekla popularnost u akademskim krugovima, ali iz niza razloga nije stekla popularnost među programerima komercijalnog softvera. Ove osnovne ideje i mogućnost ORP-a postale su vrlo privlačne programerima. Tijekom godina stvoreni su i drugi OY-ovi: SmallTalk (1980), C++ (1985), Eiffel (1986), Object Pascal (1986) i Delphi (1995), Oberon-2 (1991), Java (1991), Visual Basic (1991) i mnogi drugi. Djelatnosti ovih tvrtki postale su industrijski standardi u programu.

Značajke OOP-a

Glavna ideja OOP-a leži u činjenici da slijedi stvaranje programskih struktura, čije je ponašanje i interakcija slična ponašanju i interakciji objekata u stvarnom svijetu (tako da program može stvoriti virtualni, a ne analogni pravih esencija). Objektno orijentirano programiranje je odgovorno za pružanje mogućnosti za ručnu i brzu implementaciju ovog pristupa.

U svakodnevnom životu ljudi se oslanjaju (da ne kažemo) na različite metode "ekonomije misli", koje im omogućuju da shvate i izraze sklopive kutije na jednostavan način. Uobičajene tehnike uštede novca uključuju:

· Apstrakcija (apstrakcija nemrežnih detalja);

· Uzgalnennya (vidjeti skrivene znakove na raznim predmetima ili predmetima);

· Klasifikacija (prepoznavanje odnosa između predmeta i razine njihove sličnosti).

Ovo je jednostavno način da se ljudima pomogne u kretanju kroz kompleksnost objekata koje vide. Objektno orijentirano programiranje također može pružiti takve značajke za "borbu protiv nereda programa". Da bi se implementirao objektno orijentirani pristup programiranju, uvode se novi koncepti:

· Objekti - posebne programske strukture koje integriraju podatke i algoritme za njihovu obradu;

· Enkapsulacija - hvatanje detalja funkcioniranja objekata;

· Spudkuvannya - "prečac" metoda stvaranja novih klasa;

· Polimorfizam - mogućnost kombiniranja više implementacija jedne funkcije.

Objekti i klasa

Objekti su posebne programske jedinice koje se formiraju iz tih algoritama za obradu istih podataka. Podaci koji ulaze u skladište predmeta nazivaju se polja(Svojstva, autoriteti, članovi). Algoritmi koji ulaze u skladište objekta nazivaju se metode(Usluge, operacije, funkcije članova). Nažalost, u OVP-u ne postoji uobičajena terminologija, au različitim se jezicima koriste različiti pojmovi kako bi ih se razumjelo.

Klasi- To su objektivne vrste podataka. Baš kao što cijeli brojevi pripadaju cijelobrojnom tipu (na primjer, cijeli broj ili bajt), objekti također pripadaju objektnom tipu - klasi. Svi objekti iste klase imaju isti skup polja i isti skup metoda.

U zajedničkim jezicima (C++, Java), objekti se pozivaju Čuvam kopije(instance).

Nedostatak različitih klasa i objekata leži u činjenici da je provjera logičkih (semantičkih) veza između podataka i funkcija za obradu podataka trivijalan zadatak i uglavnom se može prenijeti na kompajler (računalo) – sada možete utvrditi jesu li podaci netočno ispravljeno .

Enkapsulacija

Enkapsulacija (doslovno - "prijem") - kontrolirano prikupljanje informacija o unutarnjoj strukturi klase. Klasa može imati polja i metode koje koriste objekti, uključujući i osiguravanje njihovog rada (na primjer, međuspremnik u dinamičkoj memoriji, datoteka s radnim podacima, metode za rad s ovom datotekom itd.). Nije sigurno mijenjati takva polja ili klikati na metode objekta poziva - to može uništiti vaš sustav. Kako bi se osigurala sigurnost objekata kao što su polja, ova metoda može biti zgrabiti- Braniti zvijer pred njima.

S pozicije "borbene složenosti", enkapsulacija vam omogućuje prijenos dijela kontrole nad ispravnošću rada s objektima na kompajler (računalo).

Demonstrirat ćemo različite mogućnosti enkapsulacije polja i metode (svakodnevno do automatske enkapsulacije svih polja). Industrije objektnih jezika, kao što su C++, Java, Delphi, Eiffel itd., imaju tri razine polja i metoda enkapsulacije:

· javno - po prvi put javna polja Ne postoje zajedničke razmjene između metoda objekata;

· zaštićeno - odmah hajde da krademo polja Ne može postojati više metoda osim metoda ove klase i metoda podređenih klasa;

· privatno - izravno privatna polja a metode se mogu okriviti za metode u ovoj klasi.

smirujući se

smirujući se- stvaranje novih klasa dodavanjem dodatnih detalja postojećim klasama, izostavljanje opisa elemenata koji se izbjegavaju. Kada se naslijedi, poziva se nova klasa po klasi(djeca, potklasa), a izlazna klasa se poziva klasa predaka(Bašić, Batkivsky, super klasa).

Smanjenje će skratiti veličinu programa isključivanjem ponovljenih opisa. Sva polja i metode deklarirane u klasi predaka automatski se prenose u podklase, a obično se nazivaju odbiti(predstavlja se).

Što god Očeva metoda zahtijeva, možete ponovno vrednovati- tobto. Prepoznajte da se drugi algoritam koristi na isti način kao metoda platforme klase.

Potiču se akcije višestruki pad, u kojem jedna klasa odbija svu moć i metode istovremeno među nekoliko klasa. Nažalost, velik dio zabune skriven je u logičkim konfliktnim situacijama, budući da podrška komplicira programiranje jezika, a posebno prevoditelj. Iz tih razloga, u mnogim slučajevima, većina pada jednostavno je blokirana, inače se može oduzeti.

Ukupnost svih klasa predaka i klasa porijekla naziva se Hijerarhija klasa.

Kondenzacija klasa središnji je koncept OOP-a, koji se izravno i neizravno temelji na drugim konceptima i mehanizmima. Apsolutna većina ORP mehanizama zahtijeva hijerarhiju klasa kako bi se otkrile njihove prednosti.

Polimorfizam

Polimorfizam(Doslovno - "raznolikost oblika") - sposobnost korištenja jednog naziva za nekoliko metoda (ili funkcija) koje mogu imati slično značenje. Drugo tumačenje – jedna metoda (funkcija) može imati nekoliko mogućnosti implementacije; ova metoda (funkcija) se zove polimorfni. Slično drugim ORP mehanizmima, polimorfizam posebno pojednostavljuje razvoj složenih programa. Zapravo, polimorfizam osnažuje koncept što treba zaraditi novac, osim toga jak Ne treba biti bojažljiv.

Ako povučemo analogiju iz stvarnog života, onda je polimorfizam u skladu sa stvarnim životom. Na primjer, riječ "glazba" znači "svirati glazbeni instrument". Ali različiti se glazbeni instrumenti sviraju na različite načine. Postoji samo jedan termin, ali ima puno opcija. Dakle, "glazba" - polimorfno djelovanje. U OOP-u, "stvarati glazbu" potvrđuje polimorfna metoda, koji ima svoju implementaciju za skin klasu glazbenih instrumenata

Postoje dvije vrste polimorfnih metoda u OOP-u revantageі virtualan.

Metode obnavljanja priznat za Vikonannyja Iz podataka različitih vrsta. Postoje različiti nazivi, kao i različiti popisi argumenata i/ili vrsta vrijednosti koja se rotira.

Virtualne metode priznat za Vikonannyja međutim, iza operacije zamjene u stvarima spora, ali se nastava izbjegava. Virtualne metode imaju različita imena i prototipove. Njihova glavna značajka je da uvijek točno odgovaraju stvarnoj klasi objekta.

Tipičan primjer ponovno zamišljenih funkcija je Pascalova SQR funkcija. Vaughn izračunava kvadrat broja i za cijele argumente rezultat će biti isti, a za govorne argumente bit će govorljiv.

Prednosti virtualnih metoda otkrivaju se tek u različitim hijerarhijama klasa. Tipična shema za korištenje virtualnih metoda je sljedeća:

· Klasa pretka hijerarhije ima polimorfnu metodu, što znači duboki influks. U ovom slučaju, virtualna metoda vikorist ili sama metoda je virtualna.

· Za klase slijetanja, odgovarajuća virtualna metoda se ponovno vrednuje – za klasu kože, odgovarajuća radnja se ponovno vrednuje na svoj način.

· Kada se izvrši poziv za objekt koji pripada roditeljskoj klasi, polimorfna metoda se zapravo poziva na virtualnu metodu roditeljske klase (ne klase pretka).

Dobar primjer takve upotrebe virtualnih metoda je sustav grafičkog prozorskog sučelja Delphija ili Visual Basica: vidljivi element grafičkog sučelja je gumb, tipka itd. - može se primijeniti na klasu TControl. Klasa TControl uvodi napredne polimorfne metode za oslikavanje elemenata grafičkog sučelja, a možete ručno oslikavati svoje zaslone.

Objektno orijentirano programiranje očito nije prepoznatljivo u Rock Standardu iz 2004., ali u Obovyazkov Minimum bit će tema umjesto informacijske znanosti za specijalizirane studente (Riven B): Objektno orijentirano programiranje: objekt, moći objekta, operacije na objektu. Ondje je izumljena i tehnologija objektno orijentiranog programiranja.

Prote OVP nije lako razvio praksu informatike (programiranja) u bogatim školama, a i na stranicama školskih pomagala ( Ugrinovich N.D. Računalstvo i informacijske tehnologije. Pidručnik za 10-11. razrede, 2005. M: BINOM. Laboratorija znanja). Osim toga, propedeutički tečaj informatike za osnovnu školu (radno šivanje autorskog tima pod vodstvom O. Gorjačova. 1.–4. razredi) također će omogućiti razumijevanje objekt i yogo vlasti.

Tehnologija (paradigma) OOP-a ne odnosi se toliko na svladavanje trenutnih tehnika programiranja koliko na razvoj objektnog modela temeljnog problema. Za to je potrebno dobro poznavanje osnovnih principa OOP-a i programiranja u budućnosti, a poznavanje bilo kojeg OOP-a nije obavezno – o tome su utemeljitelji i teoretičari OOP-a više puta pisali. Tako Grade Buch u svojoj knjizi "Objektno orijentirani dizajn i analiza" navodi sljedeću maksimu: "Možete pisati programe u objektno orijentiranom stilu na bilo kojem (ne-objektno orijentiranom) jeziku. gramovannya." Za pokretanje algoritma OOP tehnologije potrebno je formulirati popis objekata iz kojih algoritam djeluje, razmisliti o snazi ​​skin objekta i implementirati algoritam kao rezultat interakcije opisa tih objekata.

Kao što je statistika već rekla, takav će pristup pojednostaviti većinu složenih zadataka, no u okviru škole (s izuzetkom ograničenog broja godina) važno je osmisliti zamjenske početne zadatke, tj. kako ne bi bilo daleko od upotrebe novih tehnologija.ORP u vanjskom svijetu.

Zapravo, školski OVP se smatra nevidljivim dijelom vizualnog i komponentnog programiranja u trenutnim profesionalnim programskim sustavima i kao objekti koji se proučavaju u bibliotekama objekata spremnih za korištenje različitih razina - ovo i knjižnice za korištenje grafičkog sučelja Windows dodaci i tipovi podataka bogatih univerzalnih biblioteka (na primjer, STL C++). Da biste naučili koristiti te biblioteke, dovoljno je znati i razumjeti nekoliko jednostavnih pravila za sintaksu vašeg programiranja. Međutim, takvo “znanje” studente nimalo ne približava profesionalnom razvoju mog programiranja, niti vodi razumijevanju OVP-a. Ale, pjesma, nema ništa strašno u ovome. Školska informatika iu specijaliziranim školama ne fokusiraju se na pripremu stručnih programa. Primjena OOP-a je posebna tema, a često se ne posvećuje dovoljno pažnje njihovim specifičnim specijalnostima.

Ne poričući u potpunosti stavove nekih eksponenata računalne znanosti, važno je smjestiti objektno-orijentirani pristup u područje obrazovnog programiranja, uključujući i školsko, značajno je da se ORP ne može razumjeti bez takvih osnovnih principa kao što je program. ma , vikonavetsya, zminna, umova, ciklus itd. . Koncept OOP-a također uključuje klasično proceduralno programiranje (pogl. “ Potprogrami“), poput Einsteinove mehanike – Newtonove mehanike: moguće je identificirati proceduralni program kao jedan objekt, što ćemo zbog jednostavnosti izostaviti. Dakle, prije nego što započnemo nastavni plan i program u školi, moramo naučiti osnovne govore. Í manja sposobnost rada s modernim alatima za vizualno programiranje (Delphi, Visual Basic, Visual C++
itd.) upoznati se s konceptima objekata i njihovih komponenti, uglavnom kroz korištenje dodatnih tehnika za učenje programiranja iza scene.

Tajne informacije

OOP je stil programiranja koji ima 80 godina od 20 stoljeća. Osim proceduralnih, gdje se obrađuju podaci i instrukcije, u objektno orijentiranom programiranju informacije se spajaju u jednu cjelinu.

Glavne zasjede PLO-a

smirujući se

Još jedan princip ORP-a je slabljenje - sposobnost jedne klase da prilagodi metode druge bez ponavljanja njihove stvarne implementacije. Sažimanje omogućuje da izlazni kod postane prekobrojan.

Polimorfizam

Drugi princip ORP-a je polimorfizam. Ovaj koncept znači da za manipuliranje objektima različitih stupnjeva složenosti možete stvoriti jedno sučelje koje reagira na različite uvjete i odmah ispravno implementirati zadatak.

Movi OOP

Principi OOP-a usvojeni su u najpopularnijim programskim jezicima, poput C++ i Jave, na koje je podijeljen velik dio programa. Ê i najmanje vikorystovuvaní movy OVP - tse Delphi, Object Pascal, Ruby i tako dalje.

Kritika OOP-a

Unatoč uglavnom pozitivnim nalazima ove metodologije, načela ORP-a često su prepoznata od strane kritičara. Baš kao što OOP ima svojih nedostataka.

Prije svega, prijelaz je gladak. Za razumijevanje principa ORP-a potrebno je utrošiti mnogo vremena, posebno za ljude koji rade samo s programiranjem proceduralnim jezikom.

Inače, nema puno sveobuhvatne dokumentacije, budući da je potrebno opisati klase objekata i specifične vrste implementacije.

Treće, univerzalnost metoda može dovesti do činjenice da će izlazni kod i programi koji su razbijeni biti ponovno opremljeni funkcijama i mogućnostima koje u ovom konkretnom slučaju nisu potrebne. S druge strane, to ukazuje na neučinkovitost iz perspektive pamćenja. No, bez obzira na mišljenja otuđenih ljudi, broj OOP programa u stalnom je porastu, a sami programi ubrzano se razvijaju.

Galmuê