Būdingas objektinis užprogramuotas nuosmukis. Objektinis programavimas (OOP). OOP ir poklasio atsipalaidavimo principas

Sveiki visi.

Straipsnių savaitė svetainėje, skirta OVP. Likusi pasakojimo dalis man sukėlė daug emocijų ir, deja, dar daugiau supuvusių emocijų. Nebebuvau vertas statuso. Kodėl? Nes perteikia visokias neigiamas emocijas ir prisideda prie ORP kūrimo. Emocijas atima tai, kad žmonės iki galo nesuvokia visos ORP galios ir nori visus perimti iš to, kad ORP yra blogis. Blogiausia, kad žmonės pradeda klausytis ir išmesti godžius įrodymus, kad, jų manymu, nieko naudingo nevyksta. Manau, kad tokia statistika studentams yra labiau kontraindikuotina, nei aš būčiau pateikęs anksčiau. :)

Pažiūrėkime.

Kas yra ORP? OOP – tai ir GO programavimas ir dizainas. Vienas be kito, smulkmena labiau už viską. Sukurtas ORP programinės įrangos produktų projektavimui/programavimui. Tai nėra skirta procesų modeliavimui. Ne protokolų projektavimui, o programiniams produktams ir jų įgyvendinimui. Norėdami supaprastinti sistemą, kaip tik dabar įdiegti protokolą ir verslo procesą.

Jei pradedate vikorizuoti OOP, pirmas dalykas, kurį turite padaryti, yra pradėti vikorizuoti minties objektą. Jau sakius, kad didžiausia problema yra OVP, išmokti mąstyti objektyviai yra dar sunkiau. Ir labai svarbu prieš tai perskaityti yakomagos procesą (tai padės ir GoF su analogijomis su vietos tipu, konstruktoriumi, fasadu). Su Vikorist objektų dizainu nesunkiai suprojektuosite sulankstomas sistemas. Su Vikorist minties objektu galite lengvai suprojektuoti bet kokį dizainą (svarbu, kad dizainas/programavimas būtų vienodas, nes iš principo galima projektuoti absoliučiai -yaku) operuoti su objektais ir sąveikauti tarp jų. Tobto. OOP be objektyvios minties neleis jums pradėti išnaudoti visos OOP galios.

Eikime toliau. Taigi, mums svarbu mąstyti objektyviai, kad žinotume objektų abstrakcijas, kurių mums reikia savo tikslams pasiekti. Pašalinus analogijas ir abstrakcijas, dabar turime aiškesnį vaizdą, leidžiantį greitai suprasti, kas yra sistemoje. Ir čia mes pradedame galvoti apie paveldėjimą ir polimorfizmą. Šie du įrankiai yra būtini norint rankiniu būdu keisti sistemos mastelį nedubliuojant kodo. Tačiau šių mechanizmų stiprybė priklauso nuo to, kiek abstrakcijų ir analogijų įgijote. Jei jūsų objekto mentalitetas neleidžia suformuluoti rankinio objektų skaidymo, tada irimas ir polimorfizmas jums nepadės. Tobto. Skilimas ir polimorfizmas yra ne kas kita, kaip įrankiai, išsprendžiantys sistemos mastelio keitimo problemą.

Kaip veikia šie įrankiai? Tai paprasčiau nei garuose virtos ropės, nes viskas pagrįsta mums gerai žinomomis kalbomis. Man patinka paprasti pavyzdžiai iš gyvenimo:

1. Spadkuvannya. Aš esu kepėjas. Tiek elektra, tiek dujomis. Jūsų darbas yra modeliuoti sūrio ruošimo procesą, kaip kepėjas odelių krosnyje. Svarbiausia, kad turėsime daug kodo dubliavimosi dėl to, kad jo perkėlimo į orkaitę procesas ir pačių orkaičių veikimas yra identiški abiem orkaitėms. Jei įjungsime minties objektą ir prisiminsime apie redukcijos įrankį, tada jį pašalinsime maždaug pradžioje (atsiprašau, diagrama per maža):
Є pіch (abstraktus pіch). Yra elgesys - įjungi, įjungi, padidink ir keisk temperatūrą, deda ką, ką ir kokią - temperatūrą orkaitėje, įjungia ir išjungia. Tai tam tikra prasme svarbus abstraktaus objekto pritaikymas inkapsuliavimo principams (juos įgyvendindamas privalau jų laikytis). Aš esu kepėjas, specifinis kepėjas Ivanas. Vin žino, kaip dirbti su abstrakčia kalba. Tobto. Patikrinkite temperatūrą, įjunkite šildytuvą ir pan. jūs atėjote į protą. Užtikrinimo galia slypi tame, kad mes neturėsime galimybės perrašyti savo Ivano į odos krosnis, nei elektrines, nei dujines. Manau, kad visiems aišku kodėl? Pasirodo, ostosovaniye įrankis yra teisingas.
2. Polimorfizmas. Net orkaitės veikia skirtingai. Dujos degina dujas, elektra – elektrą. Vikorizmas ir polimorfizmas, mes nesunkiai keičiame elgseną abstrakčios krosnies tankintuvuose.
3. Inkapsuliavimas. Pagrindinis inkapsuliavimo privalumas yra tas, kad aš neturiu žinoti, kas vyksta mano orkaitės viduryje. Tarkime, aš spusteliu ne ant viryklės įjungimo būdo, o ant galios pokyčio, kuris įjungiamas į vertę true. Kas jai nutiks šią akimirką? Kaip nesiderėjimų įkapsuliavimo principą, tuomet pasakysiu pradėti gyventi miegamajame, nes Aš tau pasakysiu. Tobto. Kepėjas žino, ką kepėjas veikia miegamajame, jis žino, kaip kepėjas dirba. Arba, pavyzdžiui, negalime bet kada nustatyti žemesnės ar aukštesnės orkaitės temperatūros. Jei nesilaikome inkapsuliavimo principo, turime pasakyti orkaitei, kad patikrintų temperatūrą, tai kas tai yra? Tobto. Dabar kepėjas daug žino apie orkaites. Getters ir setters yra funkcijos, kurios padės mums lengvai įgyvendinti pakeitimus. Viskas. Kadangi heteroe ir seteris yra tušti, tai reiškia, kad tai reikalinga mano vienodai abstrakcijai. Getteriai ir nustatytojai negali turėti įtakos inkapsuliavimo įgyvendinimui; dizaineris / programuotojas gali neteisingai įdiegti inkapsuliaciją.

Kieno taikyme pasirinkta abstrakcija yra gera. Kiekvienas užsiima savo reikalais, visi trys PLO ramsčiai daro viską, ką gali. Ale varto man pasirinkti purviną abstrakciją, nes prasideda tikroji problema. Ir čia yra skirtumo standartai, kurie padės suprasti, ar pasirinkote tinkamas abstrakcijas ir ar jūsų dekompozicija yra teisinga ta kryptimi, kuria einate (KIETOJI).

Jie taip pat pradėjo įtraukti abstrakciją kaip kitą OOP ramstį. Manau, kad tai švediška tiesa, bet dar labiau kvepia KEP.

Man jau buvo pasakyta apie spausdinimą. Dešinėje nėra jokių kasdienių problemų žmogui, su kuriuo dirbate nuosmukio metu. Kaip dabartiniame abstrakcijos lygyje jums svarbu vikorizuoti siužetą, taip ir jums nėra svarbu tai daryti. Ar nustosite kepti? Ar kuriate savo svajones? Tai štai... Kodėl tau rūpi, kad ši dinamiška tipizacija manęs nesupranta. Ar norėjote kepti? Imk. Ar tau reikia elektros? Na, žiūrėk, tu nebegausi dujų.

Kiti užpakaliai, kurie buvo įvesti į man skirtą statistiką, be atitinkamos abstrakcijos ir analogijos užpakalių pagal paskirtą užduotį. Speck.

Okremo DTO. DTO – grandinės raštas. Tai leidžia sukurti objektą, kuris gali perduoti informaciją kitam kamuoliui, kitai sistemai, trumpai tariant, kur ją perkelti. Kodėl aš negaliu į tai žiūrėti kaip į objektą, man tapo paslaptis. Kur yra superybė? Kas yra konteineryje? Tai kas?? Šis objektas yra objekto modelio, kurį išnagrinėjau tam tikru abstrakcijos lygiu, rėmuose, kur DTO yra objektas ir skaidymo dalis.

Taip pat neaišku, ką pasakyti apie kalbą. Galiu kurti programinę įrangą, programinę įrangą ir objektinį požiūrį nepriklausomai nuo kalbos. Jei jame nėra įdiegtos pagrindinės darbo su objektais įrankiai, mano sukurtą sistemą būtų sunku arba neįmanoma įgyvendinti.

Taip pat atrodytų, kad kalbos veiksmų negalima aptikti iš daiktų išvaizdos ir jų tarpusavio santykių. Man įdomu, kas negerai. Jums tereikia pasirinkti tinkamą abstrakciją. Ar tai būtų protokolo įgyvendinimas, duomenų bazės prieigos rutulys, jungiamieji papildiniai, užduočių tvarkyklė, verslo procesas, verslo procesų projektavimo sistema ir kt. viskas, ką galima lengvai atpažinti kaip objektą ir jų tarpusavio sąveika. Viskas gali būti įgyvendinta kaip objektai ir sąveika tarp jų. Gėris ir blogis dažniausiai slypi už jūsų proto ribų, kad galėtumėte mąstyti objektyviai.

Apibendrinant. Jei nesuprantate ORP galios, tada, viską matę, turite išsiugdyti objektyvų protą.

P.S. Komentaruose prieš paskutinį straipsnį aš aiškiai peržengiau realių žmonių brutalumą. dar paklausiu.

Kodėl objektinis programavimas puikiai tinka daugumoje projektų? OOP siūlo veiksmingą būdą kovoti su šiuo sudėtingumu. Užuot žiūrėjusi į programą kaip į rašytinių instrukcijų seką, ji vaizduoja specialias galias turinčių objektų grupę ir atlieka su jais veiksmus. Taip siekiama sukurti aiškesnius, patikimesnius ir lengviau įgyvendinamus priedus.

Pagrindiniai principai susiformavo dėl to, kad kituose požiūriuose buvo skirtumų. Tarp jų – prieigos prie duomenų trūkumas ir daugybė jungčių, kurios riboja pakeitimus. Jų supratimas apie šias priežastis yra svarbus norint suprasti, kad ORP turi tokius privalumus kaip užprogramuotas.

Procedūriniai filmai

C, Pascal, FORTRAN ir panašios kalbos yra procedūrinės. Čia operatorius nurodo kompiuteriui daryti tai, ką jis daro: pašalinti duomenis, pridėti skaičius, padalinti iš šešių, rodyti rezultatą. Mano procedūrinis papildymas yra instrukcijų sąrašas. Kadangi jis mažas, nereikia jokio kito organizacinio principo (dažnai vadinamo paradigma). Programuotojas sukuria instrukcijų sąrašą, o kompiuteris jas išsaugo.

Pagal funkciją

Didėjant programoms, sąrašas tampa sudėtingas. Nedaug žmonių gali suprasti daugiau nei šimtus instrukcijų, nesuskirstę į grupes. Dėl šios priežasties ši funkcija tapo būdu padaryti programas išmanesnes jų kūrėjams. Kitomis kalbomis ta pati sąvoka gali būti vadinama subprogramomis arba procedūromis.

Programa suskirstyta į funkcijas, kurių kiekviena turi aiškiai pažymėtą sąsają.

Procedūrų suskirstymo idėją galima išplėsti sugrupuojant jas į didesnį objektą, vadinamą moduliu, tačiau principas panašus: komponentų, kurie sudaro instrukcijų sąrašus, grupavimas.

Dėmesys funkcijoms ir moduliams yra vienas iš išorinių struktūrinio programavimo akmenų, kuris buvo prieš geležinę paradigma kelis dešimtmečius iki ORP atsiradimo.

Struktūrinio programavimo problemos

Programų fragmentai tapo didesni, o struktūrinis programavimas pradėjo susidurti su sunkumais. Projektai tapo lankstesni. Tvarkaraščiai griūdavo. Į jį įsitraukė daugiau programuotojų. Padidėjo sulankstymas. Išlaidos išaugo, grafikas žlugo ir prasidėjo griūtis.

Šių nesėkmių priežasčių analizė parodo procedūrinės paradigmos trūkumus. Nepriklausomai nuo to, kiek programavimo struktūrizavimo metodai yra gerai įgyvendinami, puikios programos tampa neįtikėtinai sudėtingos.

Kokios yra šių problemų, susijusių su procedūrine kalba, priežastys? Visų pirma, funkcijos gali neturėti prieigos prie visuotinių duomenų. Kitaip tariant, procedūros ir vertybės nėra tarpusavyje susijusios ir prastai modeliuoja realų pasaulį.

Norint pažvelgti į šias problemas inventorizacijos programos kontekste, vienas iš svarbiausių pasaulinių duomenų elementų yra atsargų vienetų visuma. Įvairios funkcijos gali būti išplėstos iki jų, norint įvesti naują reikšmę, ją rodyti, pakeisti ir pan.

Neribota prieiga

Programa, parašyta, pavyzdžiui, C, turi dviejų tipų duomenis. Vietiniai skambučiai funkcijos viduryje ir kitos procedūros neturi įtakos.

Jei dvi ar daugiau funkcijų yra atsakingos už atsisakymą prieiti prie tų pačių duomenų, likusios gali būti visuotinės. Tokia, pavyzdžiui, informacija apie daiktus, kuriuos reikia drausti. Visuotiniai duomenys gali būti prieinami bet kuriai procedūrai.

Puiki programa turi daug funkcijų ir daug globalių elementų. Procesinės paradigmos problema yra ta, kad ji sukuria dar daugiau galimų ryšių tarp jų.

Toks didelis jungčių skaičius reikalauja tam tikrų sunkumų. Visų pirma, tai daro programos struktūrą sudėtingesnę. Kitaip tariant, tai apsunkina pakeitimus. Pakeitus visuotinių duomenų elementą, gali pasikeisti visos funkcijos, kurios gali jį pasiekti.

Pavyzdžiui, programa nori tikėti, kad draudžiamo daikto kodas turi būti sudarytas ne iš 5 skaitmenų, o iš 12. Todėl trumpąjį reikėtų keisti į ilgą. Dabar su kodu susijusios funkcijos gali būti pakeistos, kad veiktų su nauju formatu.

Kai didelėje programoje elementai keičiasi, svarbu pasakyti, kokios procedūros gali juos pasiekti. Tačiau, kaip suprantate, dėl šio pakeitimo kiti pasauliniai duomenys gali būti apdoroti neteisingai. Viskas yra susieta, todėl pakeitimas vienoje vietoje lems kitą.

Realaus pasaulio modeliavimas

Kita – pati svarbiausia procedūrinės paradigmos problema ir tos, kurios yra susijusios su duomenų apdorojimu, ir prastai modeliuojančio kalbėjimo funkciją pasaulyje. Čia galime susidoroti su tokiais objektais kaip žmonės ir automobiliai. Kvapai nėra panašūs nei pagal duomenis, nei pagal funkcijas. Sudėtingi realūs objektai turi požymius ir elgesį.

Atributai

Atributų (kartais vadinamų charakteristikomis) pavyzdžiai žmonėms yra akių spalva ir sėdynės pavadinimas, automobiliams – durų storis ir skaičius. Kaip paaiškėjo, realaus pasaulio atributai yra lygiaverčiai programos savybėms. Smarvė turi specifines reikšmes, tokias kaip mėlyna (akių spalva) arba durų skaičius.

Povedinka

Elgesys – toks, kurio realaus pasaulio objektai bijo bet kokio antplūdžio. Jei paklausite savo viršininko apie atlyginimų didinimą, atsakymas bus toks pat. Paspaudus ant stogo, automobilis pradeda klibėti. Vimovos elgesio dantis ir užpakaliai. Elgesys yra panašus prieš procedūrą: jie skambina padaryti tai, o tada padaryti tai. Taigi šios funkcijos neefektyviai modeliuoja realaus pasaulio objektus.

Problemos sprendimas

Objektas OOP vaizduojamas kaip duomenų ir funkcijos rinkinys. Tik procedūros, vadinamos C++ narių funkcijomis, leidžia pašalinti reikšmę. Duomenys buvo gauti ir pavogti iš pakeitimo. Vertybės ir funkcijos yra sujungtos į vieną visumą. Inkapsuliavimas ir saugojimas yra pagrindiniai GOM aprašymo terminai.

Jei reikia keisti duomenis, aišku, kurios funkcijos su jais sąveikauja. Jokios kitos procedūros negali atimti prieigos prie jų. Taip bus lengviau rašyti, tobulinti ir palaikyti programas.

Papildymą sudaro keli objektai, kurie sąveikauja vienas su vienu, įskaitant narių funkcijas.

Šiandien plačiausiai naudojamas programavimas yra C++ (plius plius). „Java“ turi daugybę funkcijų, tokių kaip ekranai, šablonai ir keli deriniai, dėl kurių ji yra ne tokia sudėtinga ir universali nei C++. C# vis dar pasiekiamas C++ populiarumu.

Atminkite, kad šios C++ narių funkcijos daugelyje kitų GO vadinamos metodais, pvz., „Smalltalk“. Šie elementai vadinami atributais. Norėdami gauti pranešimą, spustelėkite objekto metodą.

Analogija

Galite identifikuoti įmonės padalinių objektus. Daugumoje organizacijų kariškiai dėl atlyginimo vieną dieną nedirba štabo nariu, o likusią dienos dalį praleidžia užsiimdami mažmenine prekyba. Svarbu užtikrinti, kad visas jos personalas būtų kruopščiai uždėtas ant apkaustų. Tai naujausi duomenys: darbo užmokesčio rodikliai, pardavimai, užimtumo profiliai ir kt. Skyrių žmonės dirba su savo informacija. Įmonės padalijimas tokiu būdu palengvina jos veiklos kontrolę ir išsaugo duomenų vientisumą. Buhalterinė apskaita patvirtina, kad jei reikia žinoti bendrą darbo užmokesčio sumą, mokamą dabartinei šeimai, nereikia gilintis į archyvus. Tereikia išsiųsti pažymą patikimam asmeniui, pasitikrinti, kol tas asmuo turės prieigą prie duomenų ir rasti reikiamos informacijos patvirtinimą. Tai garantuoja taisyklių laikymąsi ir trečiųjų šalių pristatymo nebuvimą. Taigi pats objektas PLO užtikrins ataskaitos organizavimą.

Svarbu atsiminti, kad orientacijos į objektą neriboja roboto programos detalės. Dauguma C++ teiginių yra panašūs į procedūrinių teiginių, tokių kaip C, teiginius. Tiesą sakant, C++ narių funkcijos yra gana panašios į C. Tik platesnis kontekstas leidžia nustatyti, kas yra procedūrinis pareiškimas, ar ne.

Objektas OOP: reikšmė

Žvelgiant į numatytąjį GO-mov programavimą, pakeičiant maitinimo šaltinį kitomis funkcijomis, kyla problemų dėl ryšio su objektais. OOP dizainas labai supaprastina priedų kūrimą. Taip yra dėl programinės įrangos ir realių objektų panašumo.

Kokios kalbos tampa objektais OVP? Žemiau pateikiamos tipinės kategorijos.

Fizinis objektas ORP yra:

  • transportavimas ruhu srauto modeliuose;
  • elektros elementai grandinių projektavimo programose;
  • ekonominio modelio briaunos;
  • Taip yra ir su vėjo valdymo sistema.

Koristuvach kompiuterio branduolio elementai:

  • Meniu;
  • vikna;
  • grafika (linijinė, stačiakampė, spalvota);
  • klaviatūra, pelė, spausdintuvas, diskų įrenginiai.
  • pratsіvniki;
  • studentai;
  • klientai;
  • Pardavėjai.
  • knygos išvaizda;
  • specialus pareigūnas dešinėje;
  • žodynas;
  • apgyvendintų vietovių platumų ir ilgumų lentelė.

Ryšys tarp objektų realiame pasaulyje ir ORP tapo kombinuotų funkcijų ir duomenų rezultatas: smarvės sukūrė programavimo revoliuciją. Procesinėse kalbose tokio panašumo nėra.

Klasė

OVP objektai yra klasių nariai. Ką tai reiškia? Jūsų programose gali būti integruotų duomenų tipų. Int tipas yra sveikasis skaičius C++ kalboje. Galite paskelbti, kiek pakeitimų galima atlikti kiekvienais metais.

Panašiai nėra tos pačios klasės objektų. Tai reiškia, kad funkcijos ir duomenys yra įtraukiami į objektus, kurie jų nesukuria, kaip ir int nekuria pakeitimų.

Klasė OVP yra labai panašių objektų aprašymas. Princas, Stingas ir Madonna su spivakais. Žmonių tokiais vardais nėra daug, bet žmones taip galima vadinti, nes turi panašių savybių. OOP objektas yra klasės egzempliorius.

nusiraminti

Gyvenimo klasės skirstomos į poklasius. Pavyzdžiui, padarai skirstomi į varliagyvius, paukščius, paukščius, komas ir kt.

Tokio poklasio principas slypi tame, kad odos klasė skiriasi nuo klasės, kuri yra viena į kitą panaši. Visi automobiliai plauna ratus ir variklius. Tai yra pradinės transporto priemonių charakteristikos. Be unikalių odos savybių, poklasis turi savo ypatumus. Autobusuose vietos daug, o furgonuose – svarbiems daiktams pervežti.

Panašiai bazinė klasė gali tapti daugelio panašių poklasių tėvu, kurie gali būti apibrėžti taip, kad atskirtų jos charakteristikas nuo autoritetų pridėtų savybių. Sumažinus ją iki funkcijos, procedūrinė programa bus supaprastinta. Jei vienu metu turite suskaidyti kelias kodo dalis, galite išgauti paslėptus elementus ir įdėti juos į vieną procedūrą. Trys programos gali naudoti funkciją, kad atšauktų savo veiklą, arba jos gali atšaukti savo operacijas. Tai panašu į šią pagrindinę keršto duomenų klasę, paslėptą klajoklių grupei. Panašiai kaip redukcijos funkcija, ji sutrumpina GO programą ir paaiškina jos elementų tarpusavio sąsajas.

Pakartotinai vikoristannya

Be to, kaip kūrinių ir naudos klasė, jie gali būti perkelti į kitas programas, kad būtų galima pakartotinai naudoti vyriausybės priedus. Tai panašu į funkcijų biblioteką, kurią galima įtraukti į įvairias programas.

ORP nuosmukis yra išplėsta turtingo laiko vikoristikos idėja. Šiai klasei, jos nekeisdami, galite sukurti naują su papildomomis funkcijomis. Svarbus OOP privalumas – paprastas pakartotinis pradinio PP diegimas. Svarbu, kad tai užtikrins pelningumo didėjimą nuo pradinių investicijų.

Naujų tipų duomenų kūrimas

Objektai yra patogūs kuriant naujų tipų duomenis. Tarkime, kad programa turi dvimates reikšmes (pavyzdžiui, koordinates arba platumą ir ilgumą), ir jas reikia atlikti naudojant aritmetines operacijas:

pozicija1 = padėtis + pradžia,

de і origin – nepriklausomų skaitinių reikšmių poros. Sukūrus klasę, apimančią dvi reikšmes, ir sunaikinus jos kintamuosius objektus, sukuriami naujo tipo duomenys.

Polimorfizmas, transformacija

Operatoriai = (lygus) ir + (pliusas), kuriems naudinga padėties aritmetika, neveikia taip pat, kaip su išvestiniais tipais, tokiais kaip int. Padėties objektai nėra priskiriami, bet nustatomi programine įranga. Kaip šie operatoriai žino, kaip su jais elgtis? Įrodyta, kad jiems gali būti suteikti nauji elgesio modeliai. Šios operacijos bus pozicijos klasės narių funkcijos.

Operatorių ir procedūrų kitimas priklausomai nuo to, su kuo jie dirba, vadinamas polimorfizmu. Jei pagrindinis operatorius, pvz., + arba =, pašalina galimybę tvarkyti naujo tipo duomenis, atrodo, kad pakartotinio diegimo nėra. Iš naujo įsivaizduoti OOP yra polimorfizmo rūšis. Vona valgo šiuos svarbius ryžius.

Knyga apie ORP „Objektinis programavimas manekenams“ leis visiems norintiems susipažinti su šia pranešimo tema.

Objektinio orientavimo pagrindiniai principai ir etapai

programavimas

Programavimo teorijoje OOP apibrėžiamas kaip sudėtingos programinės įrangos kūrimo technologija, pagrįsta tam tikromis programomis objektų rinkinio pavidalu, kurių kiekvienas turi vieno tipo (klasės) egzempliorių, ir klases, kurios sukuria hierarchiją h.

galios sumažėjimas.

Programos objektų sąveika tokioje sistemoje vyksta per perdavimo metodą.

Pastaba. Tokia programų apraiška pirmą kartą pasirodė modeliuojant sulankstomų sistemų Simula, kuri pasirodė dar 60-aisiais.

Natūralus būdas, kaip mūsų modeliavimą pateikti programose, įtraukiant pažangą į kitą specializuotą modeliavimą – „Smalltalk“ (70 m.), o tada

2 pusė nuo 51

Pagrindinės PLO pasalos

Naujų universalių programavimo kalbų, tokių kaip Pascal, C++, versijų apžvalgos,

Pagrindinis ORP privalumas- sutrumpinti skambučių tarp modulių skaičių ir keisti informacijos, perduodamos tarp modulių, kiekį,

pagal modulinį programavimą. Tai pasiekiama geriau lokalizuojant duomenis ir integruojant juos su apdorojimo tvarka,

kuri leidžia praktiškai savarankiškai išskrosti įvairias dalis

(tikslinė) programa.

Be to, objektyvus požiūris skatina naujus technologinės plėtros metodus, pvz nuosmukis, polimorfizmas, kompozicija, paviršius,

kuri leidžia lengviau suprojektuoti sulankstomus objektus. Dėl to žymiai padidėja kodų pakartotinio taisymo rodiklis,

Atsiranda galimybė kurti įvairių stagnacijos būsenų objektų bibliotekas, o kūrėjai tikisi papildomų galimybių kuriant pažangaus lankstymo sistemas.

Pagrindinis OOP trūkumas yra galimybė sumažinti greičio kodą naudojant papildomą sulankstomą programinės įrangos sistemos organizavimą.

OOP yra pagrįsta šiais principais: abstrakcija,

dalijimasis prieiga, moduliškumas, hierarchija, tipizavimas, lygiagretumas,

ilgaamžiškumas.

Pažiūrėkime, koks yra odos principas.

A b s t r a g i r o v a n i- abstrakcijos matymo objektyviame lauke procesas. Abstrakcija yra realių objekto savybių visuma, išskirianti jį iš kitų tipų objektų ir

tokiu būdu konkretaus objekto ypatumai aiškiai nustatomi po tolesnio žvilgsnio ir analizės. Akivaizdu, kad realaus objekto abstrakcija turi išlikti neišnarpliotos užduoties pavidalu: vienu atveju nustatome objekto formą, kitu būdu,

į trečią - medžiagos, iš kurių jis buvo padalintas, į ketvirtą - griuvėsių dėsnis

3 pusė nuo 51

Pagrindinės PLO pasalos

tema ir kt. Dabartinis abstrakcijos skubėjimas perteikia visų abstrakcijos galių susivienijimą (kai tik aš tampu analizuojamu objektu,

Taip mes įvardijame jo elgesį) į vieną programos vienetą

abstraktus tipas (klasė).

Prieigos apribojimai- įvairių abstrakcijos įgyvendinimo elementų įtraukimas, nepažeidžiantis esminių visumos savybių.

Dėl poreikio sujungti prieigą reikia atskirti dvi abstrakcijos aprašymo dalis:

sąsaja – galimų abstrakcijos įgyvendinimo iškvietimo elementų visuma (pagrindinės elgsenos charakteristikos);

įgyvendinimas – neprieinamų abstrakcijos įgyvendinimo elementų visuma (vidinė abstrakcijos organizacija ir elgesio mechanizmai).

Keitimasis prieiga prie OOP leidžia kūrėjui:

Sistemos dizainą konstruoti žingsnis po žingsnio, nesiorientuojant į konkretų kuriamos abstrakcijos įgyvendinimą;

Lengva modifikuoti tam tikrų objektų įgyvendinimą, kuriuos tinkamai suorganizavus, reikėtų keisti kitus objektus.

Visų objekto galių (kuri taps jo elgesiu) sujungimas į vieną abstrakciją ir prieigos prie šių galių įgyvendinimo apribojimas buvo vadinamas inkapsuliavimu.

M o d u l n o s t- programinės įrangos sistemos kūrimo principas,

kuris perteikia įgyvendinimą atskirų dalių (modulių) pavidalu. Išskaidant sistemą į modulį, svarbu sujungti logiškai sujungtas dalis, kad būtų galima saugiai sutrumpinti išorinių jungčių tarp modulių skaičių. Nuosmukio principas

4 pusė nuo 51

Pagrindinės PLO pasalos

modulinis programavimas, tai supaprastins dizainą ir

programinės įrangos kūrimas

Hierarchija – reitinguota arba sutvarkyta abstrakcijų sistema.

Hierarchijos principas perteikiamas per visą programinės įrangos sistemų kūrimo hierarchijos istoriją.

OOP yra dviejų tipų hierarchija.

Hierarchija „visa / dalis“- Nurodo, kad įtrauktos tam tikros abstrakcijos

Pažiūrėkime į abstrakciją kaip į jos dalis, pavyzdžiui, lempa sulankstyta į pagrindą, siūlai paskrudinti ir lemputės. Ši hierarchijos versija kuriama sistemos kūrimo procese įvairiuose projektavimo etapuose (logiškai – skaidant dalykinę sritį į objektus, fiziškai – skaidant sistemą į modulį ir stebint susijusius procesus kelių procesų sistemoje ).

Hierarchija „už kadro / privati“- rodo, kad šią abstrakciją papildo kita abstrakcija, pavyzdžiui, „bendra lentelė -

konkretus stalo tipas“ ir „stalai yra tam tikros rūšies baldai“. Vikorist at

klasių struktūros išplėtimas, jei sudėtingos klasės bus pagrįstos paprastesnėmis, pridedant jas naujomis charakteristikomis ir, galbūt, patikslinant esamas.

Vienas iš svarbiausių OVP mechanizmų yra valdžios nuosmukis slaptoje/privačioje hierarchijoje. Kondensacija taip pat yra ryšys tarp abstrakcijų, jei viena iš jų yra kitos ar kelių kitų abstrakcijų (tiek paprastų, tiek daugybinių) struktūrinė ar funkcinė dalis.

atsipalaidavimas).

T i p i z a s i i - mainai, primesti objektų galiai ir

kuri kerta skirtingų tipų abstrakcijos pakeičiamumą (arba tokio pakeitimo galimybė yra labai didelė). Kalbomis su griežtu odos programos objekto tipizavimu (pakeitimas, subprogramos, parametras ir kt.)

vienas yra sukrėstas tipo, kuris reiškia neinvazinę operaciją

5 pusė z 51

Pagrindinės PLO pasalos

kaip atskiras programinės įrangos objektas. Aukščiau minėtas programavimas, pagrįstas Pascal, yra vikoryst, o pagrįstas C -

vidurinis tipizavimo etapas.

Laikydamiesi spausdinimo principo užtikrinsite:

ankstyvas gedimų, susijusių su nepriimtinomis operacijomis programos objektuose, aptikimas (pertraukos aptinkamos programos kompiliavimo etape prieš patikrinant bet kokios operacijos su programinės įrangos objektu leistinumą);

supaprastinta dokumentacija;

Galimybė generuoti efektyvų kodą.

Tipas gali būti susietas su programos objektu statiškai (objekto tipas nustatomas kompiliavimo etape - ankstyvas prisijungimas) ir dinamiškai (objekto tipas nustatomas tik paleidus programą - vėlesnis ryšys). Vėlyvojo ryšio įdiegimas mūsų programavimuose leidžia kurti pakeitimus – indikatorius objektuose, kurie priklauso skirtingoms klasėms (polimorfiniai objektai), kuri iš esmės praplečia kalbos galimybes.

P a r a l e l i z m- kelių abstrakcijų galia vienu metu perkeliama į aktyviąją stadiją, tada. atšaukti visas operacijas.

Egzistuoja visa žema tvarka, iš kurių svarbiausia yra nedelsiant užbaigti tam tikras veiksmų sekas. Iki tokių dienų į priekį,

Pavyzdžiui, atrodo, kad yra automatinio daugelio procesų apdorojimo užduotis.

Realus lygiagretumas pasiekiamas įgyvendinant tokio tipo užduotį kelių procesorių sistemose, jei įmanoma valdyti odos procesą tuo pačiu procesoriumi. Sistemos su vienu procesoriumi turi lygiagretumą dalytis pusvalandį procesoriaus tarp skirtingų procesų. Priklauso nuo pasirinktos operacinės sistemos tipo (vienos ar kelių programų)

6 pusė z 51

Pagrindinės PLO pasalos

Maždaug po valandos galime susidurti su sistema, kuri suyra (kaip ir

MS DOS) arba patentuota OS (pvz., Windows sistemos).

U s h i s t- abstrakcijos galia atsiranda nepriklausomai nuo proceso, iš kurio atsiranda tam tikras programinės įrangos objektas, ir (arba) nuo erdvės, judančios iš adresų erdvės į kokį kūrybos tipą.

Padalinti:

∙ laiku pagrįsti objektai, išsaugantys tarpinius veiksmų rezultatus, pavyzdžiui, skaičiavimus;

∙ lokalūs objektai, esantys subprogramų viduryje, jų gyvavimo valanda skaičiuojama nuo subprogramos atsakymo iki jo pabaigos;

∙ pasauliniai objektai, akivaizdu, kad programa vis dar žavi paslaptimi;

∙ išsaugomi objektai, iš kurių duomenys išsaugomi išorinės atminties failuose tarp kompiuterio programų seansų.

Visi principai apibrėžiami taip pat, kaip jie įgyvendinami skirtingose ​​objektinių kompiuterių versijose.

Objektinis programavimas. Kalba yra svarbi orientuotas į objektą,Kaip ir naujajame įgyvendinime, įgyvendinami pirmieji principai iš septynių aukščiau aptartų principų.

Ypač populiarūs yra Delphi ir C++Builder objektų modeliai. Šie modeliai atnaujinami naudojant OOP, skirtą MS DOS, ir apima keletą naujų funkcijų,

užtikrinti efektyvų sulankstomų sistemų kūrimą. Remiantis šiais modeliais, buvo sukurtos vaizdinės aplinkos Windows programoms kurti.

Programavimo paprastumas Windows sistemoje tapo akivaizdus

sumažinti išlaidas kuriant specialias objektų bibliotekas, kuriose „saugoma“ daug programavimo technologijos elementų.

7 pusė z 51

Pagrindinės PLO pasalos

Programinės įrangos sistemų kūrimo etapai iš wiki pagrindu sukurtų OOP.

Programinės įrangos su ORP duomenimis kūrimo procesas apima kelis etapus: analizę, projektavimą, evoliuciją, modifikavimą.

Pažvelkime į etapus.

A na liz. Metaanalizė – išsamiausias augalo aprašymas. Šiame etape baigiasi duomenų subjektinės srities analizė, suskaidomos sistemos objektinis skaidymas ir nustatomos svarbiausios objektų elgsenos ypatybės (abstrakcijos aprašymas). Remiantis analizės rezultatais, išskaidoma programinės įrangos produkto struktūrinė diagrama, kurioje parodomi pagrindiniai objektai ir informacija, kuri perduodama tarp jų, taip pat baigiama abstrakcijos aprašymu.

Dizainas. Padalinti:

logiškesnis dizainas, Kaskart, kai priimamas sprendimas, praktiška nemeluoti veikimo (operacinės sistemos ir įrangos) mintyse;

fizinis dizainas, Kas pagerbė savo brolius, paskyrė pareigūnus.

Logiškesnis dizainas slypi klasių struktūros kūrime:

identifikuoti sandėlio objektų saugojimo laukai ir metodų algoritmai, realizuoti objektų elgsenos aspektai. Šiuo atveju mes žiūrime į dalykus, į kuriuos žiūrime, ir sutinkame su klasių skirstymu (sumažinti,

sudėtis, paviršius, polimorfizmas ir kt.). Rezultatas yra hierarchija arba klasių diagrama, atspindinti klasių tarpusavio ryšius, ir klasių aprašymas.

Fizinis dizainas apima modulio klasių aprašymų derinį, jų prijungimo schemų pasirinkimą (statinį arba dinaminį išdėstymą), sąveikos su įranga metodų pasirinkimą,

operacinę sistemą ir (arba) kitą programinę įrangą (pvz.

duomenų bazės, kraštų juostos programos), procesų sinchronizavimo užtikrinimas lygiagrečio apdorojimo sistemoms ir kt.

8 pusė z 51

Pagrindinės PLO pasalos

Evoluts i su tais. Tai yra žingsnis po žingsnio įgyvendinimo procesas ir

Klasių prijungimas prie projekto Procesas prasideda nuo būsimo programinės įrangos produkto pagrindinės programos ir projekto sukūrimo. Tada klasės įdiegiamos ir sujungiamos, kad būtų sukurta apytikslė, arba, jei įmanoma,

veikiantis būsimos sistemos prototipas. Jis išbandytas ir patobulintas.

Pavyzdžiui, toks prototipas gali būti sistema, kuri apima pagrindinės programinės įrangos produkto sąsajos įgyvendinimą (perdavimas informuoti tą dieną, kad dalis sistemos nebaigta). Dėl to mes pasirenkame gaminio prototipą, kuris gali būti nurodytas, pavyzdžiui, paaiškinimui. Tada prie sistemos prijungiama klasių grupė, pavyzdžiui, susieta su pagrindinio meniu punkto įgyvendinimu.

Taip pat išbandomas ir tobulinamas alternatyvus variantas ir taip toliau, kol bus realizuojamos visos sistemos galimybės.

Šis žingsnis po žingsnio įgyvendinimas žymiai supaprastina programinės įrangos produkto testavimą ir kūrimą.

Modifikacija. Tai naujų funkcinių galimybių pridėjimo ir pagrindinių sistemos galių keitimo procesas. Kaip taisyklė,

Pakeitimai užbaigia klasės įgyvendinimą, paliekant nekeičiant jos sąsajos, todėl vicoristan ORP galima išvengti be jokių ypatingų nepatogumų, nes pakeitimo procesas apima vietinę zoną.

Pakeisti sąsają taip pat nėra sudėtinga užduotis, nes priešingu atveju šis sprendimas gali prireikti tobulinti objektų sąveikos procesus, kuriems reikia keisti kitų klasių programas. Tačiau kai kurių parametrų sutrumpinimas sąsajos dalyje, suderinus su moduliniu programavimu, labai supaprastina šį procesą.

Modifikavimo paprastumas leidžia lengvai pritaikyti programines sistemas prie veiklos minčių, kurios keičiasi, nes sugaištama vis daugiau sistemų gyvavimo valandų, kurioms kurti skiriama daug laiko ir materialinių išteklių.

9 pusė z 51

Pagrindinės PLO pasalos

OOP ypatumai ir tai, kad objektas ar objektų grupė gali būti atskirti atskirai, o jų projektavimas taip pat gali būti atliekamas skirtingais etapais. Pavyzdžiui, sąsajos klasės jau buvo įdiegtos, tačiau domeno klasių struktūra dar tikslinama.

Projektavimas pradedamas, kai bet kuris dalykinės srities fragmentas yra visiškai aprašytas analizės procese.

Pažvelgus į pagrindinius objektu pagrįsto požiūrio metodus, iliustruoja objektų skaidymas.

Objekto skaidymas

Kaip jau spėjome, naudojant modernią OOP technologiją, sprendimas kyla iš vaizdo kelių funkcinių elementų sąveikos rezultatas bet kokia sistema, kurioje yra procesai,

kokia yra užduoties tema.

Tokia odos sistema turi funkcinį elementą, kuris atmeta bet kokį įvesties srautą (vadinamą informacija) svarbiausios užduoties procese.

atšaukia dainos veiksmą (pavyzdžiui, galite pakeisti galios struktūrą, panaikinti skaičiavimus, sudaryti tvarkaraštį ir įtraukti kitus elementus). Procesas išsprendžia užduotį Sekos informacija. Perduodama informaciją iš elemento į elementą, sistema parenka reikiamus veiksmus.

Funkciniai sistemos elementai, kurių parametrai ir elgesys priskiriami protinei užduočiai, kuri gali lemti savarankišką elgesį

(siekiant „sudaryti“ veiksmus, esančius elemento formoje), objektų pavadinimai buvo pašalinti.

Subjekto srities kaip objektų rinkinio, skirto keistis informacija, vaizdavimo procesas vadinamas objekto skaidymas.

10 pusė z 51

Pagrindinės PLO pasalos

Norint suprasti, kokie objektai yra aptariami galutiniame objektų skaidyme kiekvienu konkrečiu atveju, reikia suprasti pradinį objekto požiūrį imitacijos kūrimui.skirtingi lankstymo sistemų elgesio modeliai. Tokių sistemų objektų rinkinys nustatomas analizuojant modeliuojamus procesus.

užpakalis. Objekto skaidymas (modeliavimo modelis

degalinėse). Neleiskite mums nerimauti dėl degalinėje likusio degalų kiekio dėl degalinių skaičiaus, odos degalinės aptarnavimo parametrų ir užklausų dėl kuro papildymo intensyvumo (nagrinėjame vieną kuro rūšį ).

Tikimasi, kad tokio pobūdžio užduotis bus pagrįsta imitacinių modelių naudojimu. Modelis programiškai vaizduoja realų procesą su nurodytais parametrais, kartu įrašydamas jo charakteristikas. Kartodamas modeliavimo procesą su skirtingomis parametrų reikšmėmis, skirtas aptarnauti ir priimti programas, tyrėjas pasirenka konkrečias charakteristikų reikšmes, kurios bus indėlių analizės grafikai.

Degalinės su trimis degalinėmis eksploatavimo procesas gali būti parodytas šiose diagramose.

Pasaulyje sudėtingesnės skaičiavimo technologijos ir kompiuteriai pradėti naudoti sudėtingesnėms užduotims atlikti. Paaiškėjo, kad lankstymo užduočių padidėjimas yra svarbus dėl kompiuterių sudėtingumo ir lankstymo programų rašymo efektyvumo. Objektinis programavimas(OOP) Pats Vinik yra efektyvus būdas susidoroti su sunkumais, kurie iškyla kuriant lankstomas programas.

Svarbiausia OOP dalis yra specialus požiūris į sudėtingas programavimo užduotis, vadinamas objektinė analizė, O objektinis programavimas yra tiesiog patogus įrankis šiam požiūriui įgyvendinti.

Istorija

PLO įkūrėjai yra garsūs norvegai Cristen Nygaard ir Ole-Johan Dahl. Dirbdamas su laivų statybos modeliavimu, Nygaard suprato, kad pagrindinės programinės įrangos funkcijos buvo neveiksmingos kuriant tokias sudėtingas programas, todėl Nygaard pradėjo kurti naujo programavimo koncepcijas, kurios leistų pakelti kartelę. Dėl lankstumo ir dėl Pirmas kartas. orientuota į objektą(Patį terminą sugalvojo Java kalbos autorius Alanas Kay). Kartu su Ole-Johan Dahl Nygaard išanalizavome pagrindinius ORP principus ir praktinius jų įgyvendinimo mechanizmus, kuriuos vėliau sukūrė pirmasis ORP Simula. Šių mokslininkų nuopelnus aukštai įvertino pasaulio mokslo bendruomenė, o 2001 metais Nygaardas ir Dahlas tapo Alano Turingo premijos laureatais – savotišku Nobelio kompiuterių mokslo premijos analogu.

„Mova Simula“ išpopuliarėjo akademiniuose sluoksniuose, tačiau dėl daugelio priežasčių neišpopuliarėjo tarp komercinės programinės įrangos kūrėjų. Šios pagrindinės idėjos ir ORP galimybė tapo labai patraukli programuotojams. Bėgant metams buvo sukurti ir kiti OY: SmallTalk (1980), C++ (1985), Eiffel (1986), Object Pascal (1986) ir Delphi (1995), Oberon-2 (1991), Java (1991), Visual Basic (1991) ir daugybė kitų. Šių įmonių veikla programoje tapo pramonės standartais.

OOP savybės

Pagrindinė OOP idėja slypi tame, kad ji seka programų struktūrų kūrimą, kurių elgsena ir sąveika yra panaši į objektų elgesį ir sąveiką realiame pasaulyje (kad programa galėtų sukurti virtualų, o ne analogą). tikrosios esencijos). Objektinis programavimas yra atsakingas už galimybę rankiniu būdu ir greitai įgyvendinti šį metodą.

Kasdieniame gyvenime žmonės remiasi (nesakykime) įvairiais „mąstymo ekonomijos“ metodais, kurie leidžia paprastai suprasti ir išreikšti sulankstomą dėžutę. Įprasti pinigų taupymo būdai yra šie:

· Abstrakcija (ne tinklo detalių abstrakcija);

· Uzgalnennya (paslėptų ženklų matymas ant įvairių objektų ar daiktų);

· Klasifikavimas (objektų santykio ir jų panašumo lygio atpažinimas).

Tai tiesiog būdas padėti žmonėms naršyti po sudėtingus objektus, kuriuos jie mato. Į objektą orientuotas programavimas taip pat gali suteikti tokių „kovos su programos netvarka“ funkcijų. Norint įgyvendinti objektinį programavimo metodą, pristatomos naujos sąvokos:

· Objektai – specialios programų struktūros, kurios integruoja duomenis ir jų apdorojimo algoritmus;

· Inkapsuliavimas – objektų funkcionavimo detalių fiksavimas;

· Spudkuvannya - naujų klasių kūrimo „spartusis“ metodas;

· Polimorfizmas – galimybė sujungti kelis vienos funkcijos įgyvendinimus.

Objektai ir klasė

Objektai yra specialūs programos vienetai, suformuoti pagal šiuos algoritmus tų pačių duomenų tvarkymui. Duomenys, kurie patenka į objekto sandėlį, yra vadinami laukai(Atributai, autoritetai, nariai). Algoritmai, kurie patenka į objekto sandėlį, yra vadinami metodus(Paslaugos, operacijos, narių funkcijos). Deja, OVP nėra bendros pavargusios terminijos, o skirtingomis kalbomis vartojami skirtingi terminai, siekiant juos suprasti.

Klasi– Tai objektyvūs duomenų tipai. Kaip sveikieji skaičiai priklauso sveikųjų skaičių tipui (pavyzdžiui, sveikasis skaičius arba baitas), objektai taip pat priklauso objektų tipui – klasei. Visi tos pačios klasės objektai turi tą patį laukų rinkinį ir tą patį metodų rinkinį.

Bendrosiose kalbose (C++, Java) objektai vadinami Aš saugau kopijas(atvejai).

Skirtingų klasių ir objektų trūkumas slypi tame, kad loginių (semantinių) duomenų ir duomenų apdorojimo funkcijų jungčių tikrinimas yra nereikšminga užduotis, kurią daugiausia galima perkelti į kompiliatorių (kompiuterį) – dabar galite nustatyti, ar duomenys yra neteisingai ištaisyta.

Inkapsuliavimas

Inkapsuliavimas (pažodžiui - "priėmimas") - kontroliuojamas informacijos apie vidinę klasės struktūrą gavimas. Klasėje gali būti laukai ir metodai, kuriuos naudoja objektai, įskaitant jų darbui užtikrinti (pavyzdžiui, buferis dinaminėje atmintyje, failas su darbo duomenimis, darbo su šiuo failu metodai ir kt.). Keisti tokius laukus ar spustelėti iškvietimo objekto metodus nesaugu – tai gali sunaikinti jūsų sistemą. Siekiant užtikrinti objektų, tokių kaip laukai, saugumą, šis metodas gali būti patraukti- Apgink žvėrį prieš juos.

Iš „kovos sudėtingumo“ padėties inkapsuliavimas leidžia dalį darbo su objektais teisingumo kontrolės perduoti kompiliatoriui (kompiuteriui).

Pademonstruosime skirtingas laukų inkapsuliavimo galimybes ir būdus (kasdien iki automatinio visų laukų inkapsuliavimo). Objektų kalbos pramonės šakos, tokios kaip C++, Java, Delphi, Eiffel ir kt., turi trijų lygių inkapsuliavimo laukus ir metodus:

· viešas – pirmą kartą viešieji laukai Nėra bendrų mainų tarp objektų metodų;

· apsaugotas – iš karto pavogkime laukus Negali būti daugiau metodų nei šios klasės metodai ir vaikų klasių metodai;

· privatus – tiesiai į viršų privačiuose laukuose ir metodai gali būti kaltinami šios klasės metodais.

nusiraminti

nusiraminti- naujų klasių kūrimas, papildant esamas klases papildomomis detalėmis, praleidžiant vengiamų elementų aprašymus. Paveldėjus nauja klasė vadinama pagal klasę(vaikai, poklasis), o išvesties klasė vadinama protėvių klasė(Pagrindinė, Batkivsky, super klasė).

Sumažinus programos dydį sutrumpės, nes išjungsite pasikartojančius aprašymus. Visi laukeliai ir metodai, deklaruoti protėvių klasėje, automatiškai perkeliami į poklasius ir dažniausiai yra iškviečiami nuosmukis(bus pristatyta).

Kad ir ko reikalauja Tėvo metodas, tu gali pervertinti- tobto. Pripažinkite, kad kitas algoritmas naudojamas taip pat, kaip klasės platformos metodas.

Veiksmai skatinami daugkartinis nuosmukis, kurioje viena klasė atsisako visų galių ir metodų vienu metu tarp kelių klasių. Deja, daug painiavos slypi loginėse konfliktinėse situacijose, nes palaikymas apsunkina kalbos programavimą, o ypač kompiliatorių. Dėl šių priežasčių daugeliu atvejų didžioji dalis nuosmukio tiesiog užblokuojama, kitaip ji gali būti atimta.

Visų protėvių klasių ir kilmės klasių visuma vadinama Klasių hierarchija.

Klasės kondensacija yra pagrindinė OOP sąvoka, kuri tiesiogiai ir netiesiogiai pagrįsta kitomis sąvokomis ir mechanizmais. Absoliuti dauguma ORP mechanizmų reikalauja klasių hierarchijos, kad atskleistų jų pranašumus.

Polimorfizmas

Polimorfizmas(Pažodžiui - „formų įvairovė“) - galimybė naudoti vieną pavadinimą keliems metodams (ar funkcijoms), kurie gali turėti panašią reikšmę. Kitas aiškinimas – vienas metodas (funkcija) gali turėti keletą įgyvendinimo variantų; toks metodas (funkcija) vadinamas polimorfinis. Panašiai kaip ir kiti ORP mechanizmai, polimorfizmas ypač supaprastina sudėtingų programų kūrimą. Tiesą sakant, polimorfizmas sustiprina koncepciją be to, reikia užsidirbti pinigų jakas Nereikia būti nedrąsiems.

Jei paimtume analogiją iš realaus gyvenimo, tai polimorfizmas atitinka tikrąjį gyvenimą. Pavyzdžiui, žodis „muzika“ reiškia „groti muzikos instrumentu“. Tačiau skirtingais muzikos instrumentais grojama skirtingai. Yra tik vienas terminas, bet yra daug variantų. Taigi, "muzika" - polimorfinis veiksmas. OOP „kurti muziką“ patvirtina polimorfinis metodas, kurios įgyvendinimas skirtas muzikos instrumentų odos klasei

OOP yra dviejų tipų polimorfiniai metodai revantažasі virtualus.

Atnaujinimo metodai pripažintas Vikonanny Iš įvairių tipų duomenų. Yra skirtingi pavadinimai, taip pat skirtingi argumentų sąrašai ir (arba) pasukamos reikšmės tipas.

Virtualūs metodai pripažintas Vikonanny tačiau už pakeitimo operacijos ginčo klausimais, tačiau užsiėmimų vengiama. Virtualūs metodai turi skirtingus pavadinimus ir prototipus. Pagrindinis jų bruožas yra tas, kad jie visada tiksliai atitinka tikrąją objekto klasę.

Tipiškas pergalvotų funkcijų pavyzdys yra Pascal SQR funkcija. Vaughn apskaičiuoja skaičiaus kvadratą, o sveikų argumentų rezultatas bus toks pat, o kalbos argumentų - kalbinis.

Virtualių metodų pranašumai atsiskleidžia tik skirtingose ​​klasių hierarchijose. Tipiška virtualių metodų naudojimo schema yra tokia:

· Hierarchijos protėvių klasė turi polimorfinį metodą, reiškiantį gilų antplūdį. Šiuo atveju arba vikorist virtualus metodas, arba pats metodas yra virtualus.

· Nusileidimo klasėms perkainojamas atitinkamas virtualus metodas – skin-class atitinkamas veiksmas savaip perkainojamas.

· Kai iškviečiamas objektas, priklausantis pirminei klasei, polimorfinis metodas iš tikrųjų iškviečiamas pagrindinės klasės (ne protėvių klasės) virtualiam metodui.

Geras tokio virtualių metodų panaudojimo pavyzdys yra Delphi arba Visual Basic grafinės langų sąsajos sistema: matomas grafinės sąsajos elementas yra mygtukas, mygtukas ir pan. - gali būti taikoma TControl klasei. TControl klasėje pristatomi pažangūs polimorfiniai grafinės sąsajos elementų dažymo metodai, o ekranuose galite piešti rankiniu būdu.

Objektinis programavimas aiškiai neatpažįstamas 2004 m. Roko standarte, tačiau Obovjazkovo minimume vietoje informacijos mokslo bus skirta specializuotų studentų tema (Riven B): Objektinis programavimas: objektas, objekto galios, operacijos su objektu. Ten buvo išrasta ir objektinio programavimo technologija.

Prote OVP nelengvai išplėtojo informatikos (programavimo) praktiką turtingose ​​mokyklose, taip pat mokyklinių priemonių puslapiuose ( Ugrinovičius N.D. Informatika ir informacinės technologijos. Pidruchnik 10-11 klasėms, 2005. M: BINOM. Žinių laboratorija). Be to, supratimo suteiks ir propedeutinis informatikos kursas pradinei mokyklai (darbinis siuvimas autorinio kolektyvo vadovaujant O. Gorjachovui. 1–4 kl. objektas ir jogas autoritetai.

OOP technologija (paradigma) yra ne tiek dabartinių programavimo metodų įsisavinimas, kiek pagrindinės problemos objekto modelio kūrimas. Tam būtina gerai išmanyti pagrindinius OOP ir programavimo principus ateityje, o bet kokio OOP išmanymas nėra privalomas – apie tai OOP įkūrėjai ir teoretikai rašė ne kartą. Taigi, Grade Buch savo knygoje „Objektinis projektavimas ir analizė“ teigia: „Rašyti programas objektiniu stiliumi galima bet kuria (ne į objektą) kalba. gramovannya. Norint suaktyvinti OOP technologijos algoritmą, reikia suformuluoti objektų, iš kurių veikia algoritmas, sąrašą, pagalvoti apie odos objekto galią ir įgyvendinti algoritmą dėl šių objektų aprašymų sąveikos.

Kaip jau buvo pasakyta statistikoje, toks požiūris supaprastins daugumą sudėtingų užduočių, tačiau mokykloje (išskyrus ribotą metų skaičių) svarbu sugalvoti pakaitinių pradinių užduočių, todėl kad nebūtų toli nuo naujų technologijų naudojimo.ORP išoriniame pasaulyje.

Tiesą sakant, mokyklos OVP yra matoma kaip nematoma vizualinio ir komponentinio programavimo dalis dabartinėse profesionaliose programavimo sistemose, o objektai tiriami įvairių lygių naudojimui paruoštose objektų bibliotekose – tai ir bibliotekos, skirtos naudoti grafinę sąsają. „Windows“ priedai ir turtingi universalių bibliotekų duomenų tipai (pavyzdžiui, STL C++). Norint išmokti naudotis šiomis bibliotekomis, pakanka žinoti ir suprasti keletą paprastų savo programavimo sintaksės taisyklių. Tačiau tokios „žinios“ nepriartina studentų prie mano programavimo profesinio tobulėjimo, taip pat nepriveda prie OVP supratimo. Ale, daina, tame nėra nieko baisaus. Mokyklos informatikos ir specializuotose mokyklose nėra orientuojamasi į profesinių programų rengimą. OOP taikymas yra ypatinga tema, ir jie dažnai neskiria pakankamai dėmesio savo specifinėms specialybėms.

Visiškai nepaneigiant kai kurių informatikos eksponentų pozicijos, svarbu pritaikyti objektinį požiūrį į edukacinio programavimo sritį, taip pat ir mokykloje, svarbu, kad ORP negalima suprasti be tokių pagrindinių principų kaip programa. , vikonavetsya, zminna, umova, ciklas ir kt. OOP sąvoka apima ir klasikinį procedūrinį programavimą (skyrius “ Subprogramos“), kaip Einšteino mechanika – Niutono mechanika: galima identifikuoti procedūrinę programą kaip vieną objektą, kurį dėl paprastumo praleisime. Taigi, prieš pradėdami mokytis mokykloje, turime išmokti pagrindinių kalbų. І mažiau galimybių dirbti su šiuolaikiniais vizualinio programavimo įrankiais (Delphi, Visual Basic, Visual C++
ir tt) susipažinti su objektų ir jų komponentų sąvokomis, daugiausia naudojant papildomas mokymosi užkulisinio programavimo technikas.

Slapta informacija

OOP yra programavimo stilius, turintis 80 metų iš 20 amžių. Be procedūrinių, kur apdorojami duomenys ir instrukcijos, jie apdorojami greta, objektinio programavimo metu informacija sujungiama į vieną visumą.

Pagrindinės PLO pasalos

nusiraminti

Kitas ORP principas yra slopinimas – vienos klasės galimybė pritaikyti kitos metodus nekartojant jų realaus įgyvendinimo. Sutankinimas leidžia išvesties kodui tapti antriniu.

Polimorfizmas

Kitas ORP principas yra polimorfizmas. Ši koncepcija reiškia, kad manipuliuodami įvairaus sudėtingumo objektais galite sukurti vieną sąsają, kuri reaguoja įvairiais būdais, ir iš karto teisingai įgyvendinti užduotį.

Movi OOP

OOP principai perimami populiariausiose programavimo kalbose, tokiose kaip C++ ir Java, ant kurių yra suskirstyta didelė dalis programų. Є ir mažiausiai vikorystovuvanі movy OVP - tse Delphi, Object Pascal, Ruby ir pan.

OOP kritika

Nepaisant dažniausiai teigiamų šios metodikos išvadų, ORP principai dažnai pripažįstami kritikų. Kaip ir OOP turi savo trūkumų.

Visų pirma, perėjimas yra sklandus. Norint suprasti ORP principus, būtina skirti daug laiko, ypač tiems, kurie dirba tik su procedūrinės kalbos programavimu.

Priešingu atveju nėra daug išsamios dokumentacijos, nes būtina apibūdinti objektų klases ir konkrečius įgyvendinimo tipus.

Trečia, metodų universalumas gali lemti tai, kad suskaidytas išvesties kodas ir programos bus iš naujo aprūpintos funkcijomis ir galimybėmis, kurių šiuo konkrečiu atveju nereikia. Kita vertus, tai rodo neveiksmingumą atminties požiūriu. Tačiau, nepaisant susvetimėjusių žmonių minčių, OOP programų skaičius nuolat auga, o pačios programos sparčiai vystosi.

Galmuє