This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
laboratoare:design-patterns2 [2020/01/05 17:55] Adriana Draghici [Obiective] |
laboratoare:design-patterns2 [2020/01/05 19:42] (current) Adriana Draghici [Exerciții] fixed typo |
||
---|---|---|---|
Line 27: | Line 27: | ||
* mecanism ordonat pentru delegare, apel întârziat, callback | * mecanism ordonat pentru delegare, apel întârziat, callback | ||
| | ||
- | = | ||
== Funcționare și necesitate == | == Funcționare și necesitate == | ||
În esentă, Command pattern (așa cum v-ați obișnuit și lucrând cu celelate Pattern-uri pe larg cunoscute) presupune încapsularea unei informații referitoare la acțiuni/comenzi folosind un wrapper pentru a "ține minte această informație" și pentru a o folosi ulterior. Astfel, un astfel de wrapper va deține informații referitoare la tipul acțiunii respective (în general un asemenea wrapper va expunde o metodă execute(), care va descrie comportamentul pentru acțiunea respectivă). | În esentă, Command pattern (așa cum v-ați obișnuit și lucrând cu celelate Pattern-uri pe larg cunoscute) presupune încapsularea unei informații referitoare la acțiuni/comenzi folosind un wrapper pentru a "ține minte această informație" și pentru a o folosi ulterior. Astfel, un astfel de wrapper va deține informații referitoare la tipul acțiunii respective (în general un asemenea wrapper va expunde o metodă execute(), care va descrie comportamentul pentru acțiunea respectivă). | ||
Line 102: | Line 101: | ||
** Task 3 - Undo/redo (2p) ** | ** Task 3 - Undo/redo (2p) ** | ||
- | Implementați în comenzi și în Invoker mecanismul de undo/redo al comenzilor. Recomandăm în Invoker sa folosiți două structuri de date, una care să mențină comenzile efectuate, iar una pentru a comenzile făcute undo. | + | Implementați în comenzi și în Invoker mecanismul de undo/redo al comenzilor. Recomandăm în Invoker sa folosiți două structuri de date, una care să mențină comenzile efectuate, iar una pentru comenzile făcute undo. |
** Task 4 - Test undo/redo (2p) ** | ** Task 4 - Test undo/redo (2p) ** |