Extras din curs
Paradigma reprezintă un set de concepte, valori, ipoteze şi practici care constituie un mod de percepţie a realităţii comun pentru o anumită comunitate.
Delegare
- principiu cheie al OOP, permite să grupăm un anumit funcţional într-un anumit element.
- Transmiterea responsabilităţilor către alte obiecte;
Chain of responsability
O aplicaţie OOP este structurată ca o comunitate de agenţi care interacţionează, numiţi obiecte. Fiecare obiect are un rol şi oferă un serviciu sau realizează o acţiune care este utilizată de alţi membri ai comunităţii.
O acţiune este iniţiată în aplicaţiile OOP prin transmiterea unui mesaj către un agent, responsabil de acţiune. Mesajul care reprezintă cererea la acţiune este acompaniat de altă informaţie adăugătoare, argumente, parametri, necesari pentru a realiza cererea.
Receptorul este obiectul care primeşte mesajul. Dacă receptorul acceptă mesajul, el acceptă responsabilitatea de a realiza această acţiune. Ca răspuns la mesaj, receptorul execută o metodă pentru a satisface cererea.
Tema: Paradigma POO. Abstracţii
Abstracţie - metodă/proces de eliminare a caracteristicilor numeroase unui obiect pentru a-l reduce la un set de caracteristici generale. În OOP, este unul din cele 3 principii centrale, pe lîngă incapsulare şi moştenire. În procesul de abstractizare, programatorul ascunde datele importante despre obiect pentru a reduce complexitatea şi a mări eficienţa.
Programarea orientata pe obiecte este o metoda de implementare in care programele sunt organizate ca ansamble de obiecte ce coopereaza intre ele, fiecare obiect reprezentand instanta unei clase; fiecare clasa apartine unei ierarhii de clase in cadrul careia clasele sunt legate prin relatii de mostenire.
Aceasta definitie cuprinde trei parti importante, si anume:
- obiectele si nu algoritmii sunt blocurile logice fundamentale;
- fiecare obiect este o instanta a unei clase. Clasa este o descriere a unei multimi de obiecte caracterizate prin structura si comportament similare.
- clasele sunt legate intre ele prin relatii de mostenire.
Principii:
1. Totul este obiect;
2. Obiectele interacţionează prin transmiterea şi primirea mesajelor;
3. Fiecare obiect îşi are memoria proprie;
4. Fiecare obiect aparţine unui grup de obiecte - clasă;
5. Clasa defineşte comportamentul comun tuturor obiectelor - exemplalelor sale;
6. Clasele se organizează într-o structură arborescentă cu o rădăcină comună, asigurîndu-se „Transferul” de comportament de la clasele superioare claselor inferioare din ierarhia de moştenire.
7. Obiectele trebuie să fie private, metodele, publice.
Diag. de stări o facem doar pentru clase!
Modularizarea - este o tehnică de design software ce presupune separarea funcţionalului unui program independent în module, fiecare modul conţinînd cele necesare pentru a executa funcţionalitatea de sinestătătoare a acestuia.
Modul - element de grupare a altor elemente şi face parte dintr-un sistem. Modulele sunt dezvoltate în aşa fel încît să minimizeze dependenţele între ele. Dezvoltatorii pot crea modulele separat fără a cunoaşte celelalte module ale sistemului.
Componentă -
Principiile lui Parnas:
1. Scopul descompunerii în module este reducerea costrurilor prin posibilitatea de a proiecte şi revizui modulele în mod independent;
2. Modularizarea constă în divizarea programului într-un nr. de subunităţi care pot fi compilate separat, dar care sunt cuplate (conectate) între ele
- Gradul de cuplaj între module trebuie să fie mic;
- Clasele care compun un modul trebuie să aibă legături strînse între ele;
3. Încapsularea şi modularizarea reprezintă procese similare, dar care se desfăşoară la nivele diferite de abstractizare.
Low coupling (legătura slabă) - concept prin care clasele de pe diferite nievele trebuie să interacţioneze marginal. Schimbarea conţinutului unei clase nu trebuie să afecteze o altă clasă din acelaşi modul.
High conesion - presupune că o clasă trebuie să fie orientată spre realizarea unui singur lucru, şi nu mai multe odată.
Facade - este un obiect ce oferă o interfaţă simplificată pentru o bucată mare de cod, cum ar fi o librărie de clase.
Dezavantajele POO:
1. Documentarea este un proces mai dificil,
2. In structuri cu multe nivele de ierarhizare, uneori este foarte greu de urmarit, de la care clasa vine o anumita proprietate.
3. Utilizarea mai putin eficienta a memoriei:
- Referinta obiect + referinta tip
- Deseori unele obiecte au definite in cod metode pe care nu le ut.
Moştenirea este o proprietate a claselor ce permite transmiterea parametrilor de la o clasă la alta.
Signatura - numele funcţiei şi tipul parametrilor;
Una dintre problemele ce necesită atenţie, este găsirea nivelului corect de abstractizare la etapa iniţială de dezvoltare a soft-urilor. Una dintre greşelile tipice este acordarea atenţiei sporite asupra detaliilor de implementare (tehnologice) şi nu asupra structurii organizaţionale care ar pune accentul pe separarea responsabilităţilor.
Preview document
Conținut arhivă zip
- Programare orientata pe obiecte.docx