Programare Orientat Obiect Lect dr Ionescu VladSebastian Curs
Programare Orientată Obiect Lect. dr. Ionescu Vlad-Sebastian Curs 2: • Asociere • Agregare • Compoziție • Test Driven Development 5/20/2021
Generalități POO este o paradigmă care în centru conceptul de obiecte Obiect = stare + comportament Încapsulare = stare ascunsă O clasă este o schiță pe baza căreia se construiesc obiectele În majoritatea limbajelor, un obiect este de fapt o referință Pentru eficiență, dar nu numai Pentru simplitate în comunicare, vom face un abuz de limbaj: obiect = referință. Obiect = instanță a unei clase Instanțiere a clasei = obiect Clasă = tip de date 5/20/2021
Relația “are …” Asociere: class Student { //. . . } class Teacher { List<Student> students; //. . . } 5/20/2021 Vezi și https: //www. codeproject. com/Articles/777540/Association-Aggregation-Composition-Dependency-and
Relația “are nevoie de …” Agregare: class Battery { //. . . } class Remote. Control { private Battery battery 1, battery 2; } 5/20/2021 Vezi și https: //www. codeproject. com/Articles/777540/Association-Aggregation-Composition-Dependency-and
Relația “Are nevoie de și e necesar pentru. . . ” Compoziție: 5/20/2021 Vezi și https: //www. codeproject. com/Articles/777540/Association-Aggregation-Composition-Dependency-and
În cursurile precedente Diferențele sunt conceptuale, nu sintactice: Asociere Agregare Compoziție 5/20/2021
Dezvoltare dirijată de teste (Test Driven Development - TDD) Teste: metode care verifică datele de ieșire furnizate de către metoda testată pe un set de date de intrare. Oferă o garanție asupra corectitudinii unei implementări. Protejează împotriva introducerii unor bug-uri în aplicație. Mai întâi scriem testele și apoi implementăm. Convenție de denumire: <scenariu testat> should <comportament așteptat>. Ne dorim un code coverage cât mai mare. Testele devin obligatorii începând cu iterația a doua a laboratorului 2 -4, cu un coverage de minim 90%. Vom folosi JUnit 5. 5/20/2021
Folosind TDD Scrieți un program pentru gestiunea unei cofetării. Funcționalități CRUD: Prăjitură: id, nume, ingrediente, calorii, preț, dacă e fără zahăr. Client: id, nume, prenume, CNP, data nașterii (dd. mm. yyyy), data înregistrării (dd. mm. yyy). Tranzacție: id, id prăjitură, id card client (poate fi gol), data, ora, numărul de bucăți, prețul unitar de bază, discount. Dacă prăjitura este fără zahăr, se aplică o reducere de 10%. 5/20/2021
Q & A 5/20/2021
- Slides: 9