Principiile tehnologiei orientate pe obiecte

Principiile principale ale abordării orientate pe obiect: abstractizare, încapsulare, modularitate, ierarhie. Principiile suplimentare sunt tastarea, concurrency și persistența. Apelarea lor suplimentară înseamnă că ele sunt utile în modelul obiect, dar nu sunt necesare. Fiecare dintre aceste principii nu este nou în sine, ci în modelul obiect se aplică pentru agregat.







Abstracția este unul dintre principiile de bază utilizate pentru a rezolva probleme complexe. Abstracția distinge caracteristicile esențiale ale unui obiect care o deosebește de toate celelalte tipuri de obiecte și, astfel, definește clar limitele sale conceptuale din punctul de vedere al observatorului.

Încapsularea. Dacă abstractizarea este îndreptată spre comportamentul observat al obiectului, atunci organizarea sa internă este responsabilă pentru încapsulare. Encapsularea este procesul de separare a elementelor unui obiect unul față de celălalt, determinând structura și comportamentul acestuia; Încorporarea servește la izolarea obligațiilor contractuale de abstractizare de la punerea lor în aplicare. Astfel, abstractizarea și încapsularea se completează reciproc. Abstracția funcționează numai împreună cu încapsularea. În practică, aceasta înseamnă că aveți două părți în clasă: interfața și implementarea. Interfața reflectă comportamentul extern al obiectului, descriind abstractizarea comportamentului tuturor obiectelor din această clasă. Implementarea internă descrie reprezentarea acestei abstracții și mecanismele de realizare a comportamentului dorit al obiectului. Principiul separării interfeței și implementării corespunde esenței lucrurilor: în partea de interfață se colectează tot ceea ce privește interacțiunea acestui obiect cu orice alte obiecte; implementarea ascunde de celelalte obiecte toate detaliile care nu sunt legate de procesul de interacțiune a obiectelor.

Modularitate. Divizarea programului în module pentru a reduce complexitatea sa, dar, mai important, faptul că interiorul programelor modulare sunt create printr-o varietate de interfețe bine definite și documentate, care sunt esențiale pentru o înțelegere aprofundată a programului global. Modulele din program acționează ca recipiente fizice, care sunt plasate în definirea claselor și a obiectelor. Separarea corespunzătoare a programului în module este aproape la fel de dificil ca și alege setul corect de abstracțiuni. Modulele ar trebui să încerce să construiască astfel încât să se combine abstracțiuni logic legate și de a minimiza interconexiunile dintre module.

Un element important al sistemelor orientate-obiect, și tipul principal al ierarhiei «este un» este conceptul de moștenire. Moștenirea este o relație între clase (părinte / copil), atunci când o clasă împrumută o parte structurală sau funcțională a uneia sau mai multor alte clase (respectiv, moștenire unică și multiplă). Cu alte cuvinte, moștenirea creează o ierarhie de abstracții, în care subclasele moștenesc structura din una sau mai multe superclase. Adesea subclasă completează sau Suprascrie un componente de o clasă superioară. Astfel, ierarhia moștenire generează „generalizare-specializare“, care este o subclasă caz ​​special dedicat de superclasa. Raportul «parte» (parte), spre deosebire de ierarhie «este o“, introduce o ierarhie de agregare. Agregarea permite persoanelor să structuri logic legate de grup și copii de moștenire ale acestor grupuri generale la diferite abstractizare.







Tastarea este o modalitate de a proteja împotriva utilizării obiectelor dintr-o clasă în locul celeilalte sau, cel puțin, de a gestiona o astfel de utilizare. Tastarea obligă dezvoltatorul de aplicații să exprime abstracțiile, astfel încât instrumentul utilizat în implementare să susțină respectarea deciziilor de proiectare adoptate. O mare flexibilitate în acest caz, dezvoltatorul dă mecanismul operațiilor polimorfe. Polimorfismul determină faptul că același nume poate însemna obiecte de diferite tipuri, dar având un strămoș comun, toate au un subset comun de operațiuni care pot fi realizate pe ele. Opusul polimorfismului se numește monomorfism.

Paralelism. Există probleme în care sistemul automatizat trebuie să se ocupe de mai multe lucruri în același timp. În alte cazuri, cerințele de putere de procesare depășesc resursele de un singur procesor. În fiecare dintre aceste situații, este firesc să utilizeze mai multe computere pentru a rezolva problema sau de a folosi multitasking pe un calculator multiprocesor. Procesul (flux de control) - este unitatea fundamentală a acțiunilor din sistem. Fiecare program are cel puțin un fir de control, un sistem paralel are multe astfel de fluxuri. Dar, de îndată ce sistemul introdus de paralelism, ridică imediat problema de modul de sincronizare a relației activă a obiectelor între ele, precum și alte obiecte, o secvență de acțiuni. De exemplu, în cazul în care două obiecte trimite mesaje de la un al treilea trebuie să fie un mecanism pentru a se asigura că obiectul pe care este îndreptată acțiunea, nu se va prăbuși în timp ce încerca simultan două activ obiect pentru a schimba starea. Într-un sistem paralel nu este suficient pentru a determina comportamentul unui obiect, trebuie să luăm măsuri pentru a se asigura că nu va fi distrus de mai multe procese independente.

Spectrul persistenței obiectelor în timp acoperă:

- rezultatele intermediare ale calculului expresiilor;

- variabile locale în procedura de apel;

- variabile proprii, variabile globale și date generate dinamic;

- date salvate între sesiunile de execuție a programului;

- datele salvate la trecerea la o nouă versiune a programului;

- date care, în general, supraviețuiesc programului.

În mod tradițional, limbile de programare sunt primele trei niveluri, iar bazele de date sunt ultimele. Introducerea persistenței a condus la baze de date orientate pe obiecte (OODB, baze de date orientate pe obiecte). În OODB este logic să salvați nu numai datele. dar și clase, astfel încât programele să poată interpreta corect datele. Acest lucru creează mari dificultăți în ceea ce privește creșterea cantității de date, mai ales dacă clasa obiectului trebuie schimbată.

În ceea ce privește problemele legate de persistența obiectelor în spațiu, în majoritatea sistemelor, obiectele sunt alocate obiectelor din memorie, care nu se schimbă și în care obiectul este în întregime. Cu toate acestea, pentru sistemele distribuite, este de dorit să se ofere capacitatea de a transfera obiecte în spațiu, astfel încât acestea să poată fi transferate de la mașină la mașină și, chiar dacă este necesar, să modifice forma reprezentării obiectului în memorie.

§ 6. Scopul și obiectivele limbajului unificat de modelare. Concepte UML de bază







Articole similare

Trimiteți-le prietenilor: