Documente Academic
Documente Profesional
Documente Cultură
obiect (POO)
utilizand C++
Dorel Lucanu
Gheorghe Grigoras
Introducere in POO (II)
• proiectul Agenda
• prezentare
• dezvoltarea aplicatiei utilizand MVC
• elemente interfata utilizator in mod text
• display box
• edit box
• meniu
• principii POO (continuare)
• mostenire
• polimorfism
notif. sch.
•expune functionalitatea modelului
schimbare stare
•notifica schimbarea starii
View
•vizualizeaza modelul
•cere actualizari de la model
•trimite evenimentele utilizator la
controller
•permite controllerului sa schimbe Controller
modul de vizualizare •defineste comportarea aplicatiei
actiuni utilizator •mapeaza actiunile utilizator pe
actulizare model
•selecteaza vizualizarea
raspunsului
selectie vizualizare
•unul pentru fiecare functionalitate
D. Lucanu POO – Proiectarea de clase
MVC – functionalitate agenda not quite
an UML
model diagram
Menu:
1. Afiseaza
0. Exit
Option:
view
controller
view
controller
Proprietar: Ionescu
dbOwner.setValue(model.getOwner)
Nume: _ _ _ _
editBox.setLabel(string("Nume"));
model->setName(editBox.getValue());
editBox.setLabel(string("Nr telefon"));
setName()
view model->setPhoneNo(editBox.getValue());
getValue()
setLabel() controller
Menu:
1. Afiseaza
0. Exit
Option:
view
display()
menu.addOption("1. Afiseaza");
menu.addOption("0. Exit");
case 1:
model->display();
getOption()
display() controller
relatie de
mostenire
void displayContact()
{
cout << contact->toString();
}
class View
{
public:
void displayContact()
{
cout << contact->toString();
}
private:
Contact *contact; legarea numelui la definitia sa
se face la momentul compilarii:
};
toString ⤳ Contact::toString { ... }
Magic!
Acquiantance::
myAcq Acquiantance toString()
{
...
}
class Contact{
. . .
void toString();
};
class Contact{
. . .
virtual void toString();
};
Dreptunghi
Patrat
Pasare
Pasare
zboara()
Pinguini care
zboara? Pinguin