Strategy pattern: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 95.233.63.142 (discussione), riportata alla versione precedente di Addbot
mNessun oggetto della modifica
Riga 1:
{{S|informatica}}
Nella [[Programmazione orientata agli oggetti|programmazione ad oggetti]], lo '''Strategy pattern''' è uno dei pattern fondamentali, definiti originariamente dalla [[gang of four]].
 
 
Lo '''Strategy pattern''' è uno dei [[design pattern|pattern]] comportamentali. L'obiettivo di questa architettura è isolare un algoritmo all'interno di un oggetto.
Nella [[Programmazione orientata agli oggetti|programmazione ad oggetti]], lo '''Strategystrategy pattern''' è uno dei pattern fondamentali, definiti originariamente dalla [[gang of four]].
Il pattern ''Strategy'' è utile in quelle situazioni dove sia necessario modificare dinamicamente gli algoritmi utilizzati da un'applicazione.
 
Si pensi ad esempio alle possibili visite in una struttura ad albero (visita anticipata, simmetrica, posticipata): mediante il pattern ''Strategy'' è possibile selezionare a tempo di esecuzione una tra le visite ed eseguirla sull'albero per ottenere il risultato voluto. Il design pattern [[Iterator pattern|Iterator]] si basa proprio su questo.
Lo '''Strategystrategy pattern''' è uno dei [[design pattern|pattern]] comportamentali. L'obiettivo di questa architettura è isolare un algoritmo all'interno di un oggetto.
Il pattern ''Strategy''strategy è utile in quelle situazioni dove sia necessario modificare dinamicamente gli algoritmi utilizzati da un'applicazione.
Si pensi ad esempio alle possibili visite in una struttura ad albero (visita anticipata, simmetrica, posticipata): mediante il pattern ''Strategy''strategy è possibile selezionare a tempo di esecuzione una tra le visite ed eseguirla sull'albero per ottenere il risultato voluto. Il design pattern [[Iterator pattern|Iterator]] si basa proprio su questo.
 
Questo pattern prevede che gli algoritmi siano intercambiabili tra loro (in base ad una qualche condizione) in modo trasparente al client che ne fa uso. In altre parole: la famiglia di algoritmi che implementa una funzionalità (ad esempio di visita o di ordinamento) esporta sempre la medesima interfaccia, in questo modo il client dell'algoritmo non deve fare nessuna assunzione su quale sia la strategia istanziata in un particolare istante.
Line 10 ⟶ 12:
== Struttura ==
 
[[File:StrategyPattern.png|center|Struttura del Design Pattern ''' Strategy''']]
 
== Esempio ==