Documente Academic
Documente Profesional
Documente Cultură
Design Patterns
la
abloane comportamentale (behavioral patterns) caracterizeaz modul n care obiectele i clasele interacioneaz i i distribuie responsabilitile.
Obiect
Chain of Responsibility Command Interator Mediator Memento Observer State Strategy Visitor
Diagrama Claselor
Consecine:
Cu ct sunt mai multe flyweights mprite, ctigurile de stocare sunt mai mari.
Modelul flyweight este de obicei combinat cu modelul Composite.
Implementarea:
Eliminarea strii extrinsece; Managementul obiectelor mprite.
ViewModel: Modelul View-ului abstractizare a View-ului ce intermediaz comunicarea dintre View i Model.
Modelul se refer la datele efectiv cu care se lucreaz dar i la nivelul de acces la aceste date. Spre exemplu ntr-un model ar putea fi accesate obiecte care citesc din baza de date informaii legate de o anumit persoan.
View-urile, la fel ca i n cazul clasic se refer la partea vizual care va fi afiata pe interfaa grafic, cum ar fi butoanele, ferestrele, graficele i alte controale. Acestea nu conin partea de logic business. Marele avantaj n acest caz este c un designer poate s se ocupe de partea grafic a aplicaiei lucrnd doar cu view-ul, n timp ce logica din spate rmne neafectat. View-ul comunic doar cu ViewModel-ul, n timp ce ViewModel-ul este privit ca un punct intermediar ntre View i Model. De asemenea, Modelul este singurul care interacioneaz cu baza de date. Acest model are sens n practic doar dac se folosete n combinaie cu o baza de date.
}
return _saveProductCommand; } }
n fereastr avem o list care afieaz persoanele adugate, dou textbox-uri (pentru numele i prenumele persoanei ce urmeaz s fie adugat, i un buton, pentru adugarea persoanei n list). Dup cum se poate observa, la seciunea de resurse se definete o instan de model, care este setat ca i DataContext. Modelul arat astfel:
Clasa DelegateCommand.
n cazul n care nu dorim ca s folosim propagarea comenzii prin arborele visual, putem s ne creem o clas proprie care implementeaz ICommand, i s furnizm instane de metode (delegates) pentru Execute i CanExecute. n acest caz putem fi siguri care sunt metodele care se apeleaz. Dac nu nregistrm handleri n contextul actual al controlului, atunci nu se va rula nici un cod. Totul se ntmpl local, i este foarte uor de urmrit.