Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Introducere in programare orientata-obiect, mediul Visual C++, biblioteca de clase MFC

c



+ Font mai mare | - Font mai mic



Introducere in programare orientata-obiect, mediul Visual C++, biblioteca de clase MFC

Programarea orientata-obiect

In programarea orientata-obiect un sistem informatic este privit ca un model fizic de simulare a comportamentului unei parti din lumea reala sau conceptuala. Acest model fizic este definit prin intermediul unui limbaj de programare si el se concretizeaza intr-o aplicatie ce poate fi executata pe un sistem de calcul.



Obiectele sunt elemente cheie ale programarii orientate-obiect si ele reprezinta entitati individuale reale sau abstracte cu un rol bine definit in contextul unui sistem. Un obiect are o identitate, o stare si un comportament. Tot ceea ce obiectele cunosc (starea) si pot efectua (comportamentul) este exprimat prin intermediul unor multimi de proprietati (sau atribute) si operatii (sau metode). Astfel, starea unui obiect este data de valorile proprietatilor acestuia la un moment dat. Operatiile sunt proceduri sau functii care permit modificarea acestor valori si implementeaza comportamentul obiectelor.

Aplicatiile orientate-obiect sunt compuse dintr-o multime de obiecte care interactioneaza si comunica intre ele prin intermediul mesajelor. Un mesaj reprezinta o cerere adresata unui obiect de a executa o anumita operatie. Mesajul este compus din trei elemente distincte: identitatea obiectului caruia ii este adresat mesajul, numele operatiei care se doreste a fi executata si o lista de parametri necesari executarii operatiei. Aceste trei informatii sunt suficiente pentru ca un obiect care receptioneaza un mesaj sa poata executa operatia dorita. Mecanismul transmisiei de mesaje permite prin urmare comunicarea intre obiecte aflate in contexte (sau procese) diferite sau pe diferite sisteme de calcul.

Multimea de proprietati ale unui obiect formeaza nucleul acestuia. O parte din operatiile sale sunt vizibile in exterior si ascund nucleul de celelalte obiecte dintr-un sistem. Ascunderea proprietatilor interne ale unui obiect si 'oferirea' de operatii care sa le manipuleze poarta numele de incapsulare. Incapsularea este utilizata pentru a ascunde detalii de implementare de alte obiecte aflate in sistem. Astfel poate fi modificata implementarea unui obiect fara a afecta alte parti ale sistemului din care acesta face parte. Incapsularea confera modularitate, implementarea unui obiect putand fi modificata sau actualizata independent de implementarea celorlalte obiecte din sistem. Multimea tuturor operatiilor unui obiect care sunt vizibile in exteriorul acestuia poarta numele de interfata a obiectului.

Interfetele obiectelor definesc tipul acestora. Obiectele care au aceeasi interfata apartin aceluiasi tip. Deoarece interfata este o submultime a operatiilor care definesc comportamentul obiectelor, ea mai poarta numele de comportament extern observabil.

Identificarea unei multimi de obiecte care au proprietati si comportamente comune poarta numele de clasificare. Clasa este un alt concept de baza al programarii orientate-obiect, si ea reprezinta o abstractizarea a elementelor (proprietatilor si operatiilor) comune partajate de o multime de obiecte si descrie implementarea acestora.

Obiectele sunt reprezentari concrete ale claselor, iar procesul de creare a unui obiect pe baza definitiei unei clase poarta numele de instantiere.

Alaturi de notiunile de obiect si clasa, programarea orientata-obiect introduce un mecanism puternic si natural de organizare si structurare a sistemelor informatice: mecanismul de mostenire. Mostenirea permite definirea de noi clase (numite sub-clase) pe baza unor clase deja existente (super-clase) intr-o maniera incrementala. Sub-clasele vor mosteni toate proprietatile si operatiile super-claselor. Relatia de mostenire intre clase induce organizarea claselor in ierarhii.

Componentele mediului de programare Visual C++

- editor de cod si un gestionar de proiecte interactive. Un proiect reprezinta o colectie de fisiere sursa legate intre ele care sunt compilate si link-editate pentru a forma un program executabil. De obicei, fisierele sursa ale unui proiect se afla pe disc intr-un director separat. Un proiect depinde de mai multe fisiere care nu se afla in directorul acestuia si care fac parte dintr-o biblioteca de fisiere. Legaturile dintre fisierele sursa precum si legaturile cu alte fisiere sunt retinute intr-un fisier special. Acest fisier in versiunile de Visual C++ mai mici de 4.0 are extensia .mak, iar cele din versiunile 4.0 au extensia .mdp (bineinteles, din motive de compatibilitate, acestea din urma accepta si fisiere de proiect cu extensia .mak). Versiunile ulterioare ale mediului permit lucru cu mai multe proiecte in acelasi timp, folosind fisiere de descriere a mediului de lucru (workspace - au extensia .dsw) si a fiecarui proiect in parte (fisiere cu extensia .dsp).

- editor de resurse. Resursele reprezinta elemente de interfata cu utilizatorul, cum ar fi meniurile, cursoarele, cutiile de dialog, icon-uri, etc. Fiecare proiect construit in Visual C++ va contine un fisier cu extensia .rc ce cuprinde descrierea textuala a tuturor obiectelor de interfata care fac parte din aplicatie. Editorul de resurse va genera in acest fisier cod corespunzator fiecarei actiuni efectuate asupra resurselor. Nu este recomandata editarea manuala a acestui fisier.

Principalele componente ale mediului Visual C++

si interactiunea acestora cu fisierele proiectului

- compilator C/C++. Acest compilator determina limbajul utilizat in fisierele sursa (C sau C++) inspectand extensia acestora (.c sau .cpp). Limbajul utilizat in fisierele sursa trebuie sa respecte standardul ANSI versiunea 2.1 plus extensiile introduse de Microsoft. In urma, compilarii pentru fiecare fisier sursa este creeat un fisier obiect cu extensia .obj.

- link-editor care construieste fisiere 'executabile' (avand extensia .exe, .dll, .lib, .ocx) folosind fisiere obiect realizate de catre compilator pentru fiecare fisier din proiect.

- compilator de resurse care opereaza in doua moduri: compileaza un fisier ASCII de resurse (cu extensia .rc) generat de editorul de resurse intr-un fisier binar cu extensia .res, care este apoi atasat unui fisier binar 'executabil' ( .exe, .lib, .dll, .ocx). Daca sunt aduse modificari asupra fisierului .res acesta poate fi unit cu fisierul executabil fara a mai fi necesara link-editarea.

- depanator simbolic care este strans legat de editorul de cod sursa. Printre caracteristicile sale principale amintim aici: posibilitatea inserarii de puncte de intrerupere, executie pas cu pas a programului, posibilitatea vizualizarii in timpul executiei a valorilor variabilelor unei aplicatii la un moment dat, etc. Pentru a putea folosi depanatorul simbolic asupra unui proiect este necesara setarea corespunzatoare a anumitor optiuni de compilare si link-editare.

- generator de aplicatii-sablon, numit AppWizard, care creaza 'scheletul' unei aplicatii Windows generice. Fisierele si continutul acestora vor fi generate in urma unui dialog direct cu programatorul. Codul generat de catre AppWizard este un cod care ajuta programatorul sa realizeze rapid o aplicatie initiala pe baza careia va dezvolta proiectul in continuare.

- instrument care automatizeaza anumite faze ale procesului de implementare a aplicatiei, numit ClassWizard. Daca se doreste crearea unei noi clase sau a unei functii prin care o anumita clasa sa raspunda la aparitia unui mesaj, ClassWizard va micsora efortul de programare prin generarea declaratiei si definitiei clasei sau functiei precum si a conexiunii dintre functie si mesaj.

- navigator prin sursele unui proiect. Pentru o aplicatie implementata de la un capat la altul de catre un singur programator este foarte posibil ca acesta sa cunoasca bine continutul tuturor fisierelor sursa, a claselor sau a functiilor membru ale acestora. In schimb, daca se incearca intelegerea codului unei aplicatii scrise de o alta persoana este nevoie de putin ajutor. Navigatorul (browser-ul) mediului Visual C++ permite examinarea unei aplicatii atat prin prisma claselor si membrilor acestora cat si prin prisma fisierelor sursa. Cu acest navigator se poate selecta orice functie, variabila, macro sau clasa si apoi se poate vedea unde sunt acestea definite si utilizate in proiect.

- help online. Intregul continut al manualelor referitoare la Windows SDK si biblioteca MFC sunt incluse in help-ul mediului Visual C++. Help-ul mediului Visual C++ rezolva conflictele intre numele identice ale functiilor SDK si cele din biblioteca MFC.

- intrumente de diagnosticare Windows: SPY pentru observarea mesajelor Windows, HEAPWALK pentru examinarea memoriei, HC31 pentru compilarea fisierelor help si STRESS pentru memoria disponibila limitata artificial. De asemenea mai sunt incluse utilitarul DBWIN care afiseaza diagnosticuri si NMAKE care proceseaza fisierele .mak realizate manual.

Biblioteca de clase MFC

Biblioteca de clase MFC poate fi impartita pe trei nivele. La primul nivel se afla clasele care descriu comportamentul obiectelor grafice si incapsuleaza functiile API (Application Program Interface) Windows. Aceste obiecte (cum ar fi de exemplu ferestrele, butoanele, fonturile, contextul dispozitiv, etc.) sunt create si accesate de catre programatorii Windows prin intermediul unor functii sistem. Prin urmare clasele din MFC de la acest nivel incapsuleaza practic obiectele si functiile care le sunt atasate existente in API Windows, oferind un grad ridicat de abstractizare.

La al doilea nivel se afla clasele care nu depind de sistemul de operare Windows si care implementeaza structuri fundamentale de date (liste, tablouri, dictionare, siruri de caractere, data calendaristica etc.).

Ultimul nivel este reprezentat de clasele care fac parte din mediul de lucru al aplicatiilor (application framework), si anume clasele aplicatie, view, document, etc. Un mediu de lucru al aplicatiilor este o colectie de componente soft (clase, macro-uri, functii globale) care pot fi utilizate in realizarea unei aplicatii generice.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1205
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved