This shows you the differences between two versions of the page.
|
poo:breviare:breviar-12 [2026/01/12 08:14] george.tudor1906 |
poo:breviare:breviar-12 [2026/01/12 08:16] (current) george.tudor1906 [2. Decorator] |
||
|---|---|---|---|
| Line 275: | Line 275: | ||
| === 2.3 Structura Decorator === | === 2.3 Structura Decorator === | ||
| - | Mapând pe diagramă: | + | {{:poo:breviare:img2.jpg?600|}} |
| - | * **FileOutputStream** joacă rolul de componentă concretă | + | |
| - | * **PrintWriter**, **OutputStreamWriter** și **CipherOutputStream** joacă rolul de decoratoare concrete | + | **Participanți:** |
| + | * **Component** - definește interfața pentru obiectele care pot avea responsabilități adăugate dinamic (metoda Operation()) | ||
| + | * **ConcreteComponent** - definește un obiect căruia i se pot adăuga responsabilități suplimentare | ||
| + | * **Decorator** - menține o referință către un obiect Component și definește o interfață conformă cu interfața lui Component (delegă apelul către component->Operation()) | ||
| + | * **ConcreteDecoratorA** - adaugă stare suplimentară (addedState) componentei | ||
| + | * **ConcreteDecoratorB** - adaugă comportament suplimentar (AddedBehavior()) și apelează Decorator::Operation() | ||
| <note important> | <note important> | ||
| Line 283: | Line 288: | ||
| o componentă concretă, construcția nu va funcționa. | o componentă concretă, construcția nu va funcționa. | ||
| </note> | </note> | ||
| - | |||
| - | === 2.4 Diagrama UML Generală === | ||
| - | |||
| - | {{:poo:breviare:img2.jpg?600|}} | ||