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:38] Adriana Draghici |
laboratoare:design-patterns2 [2020/01/05 19:42] (current) Adriana Draghici [Exerciții] fixed typo |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| == Obiective == | == Obiective == | ||
| - | Scopul acestui laborator este familiarizarea cu folosirea deign pattern-ului comportamental //Command// | + | Scopul acestui laborator este familiarizarea cu folosirea design pattern-ului comportamental //Command//. |
| 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) ** | ||