Design pattern: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 93.34.197.27 (discussione), riportata alla versione precedente di Ciampix
Riga 48:
* Il [[Container pattern|Container]] ("contenitore") offre una soluzione alla rottura dell'incapsulamento per via dell'uso dell'ereditarietà.
* Il [[Decorator]] ("decoratore") consente di aggiungere metodi a classi esistenti durante il ''run-time'' (cioè durante lo svolgimento del programma), permettendo una maggior flessibilità nell'aggiungere delle funzionalità agli oggetti.
* [[Extensibility pattern|Extensibility]] ("estendibilità")
* Il [[Façade pattern|Façade]] ("facciata") permette, attraverso un'interfaccia più semplice, l'accesso a sottosistemi che espongono interfacce complesse e diverse tra loro.
* [[Flyweight pattern|Flyweight]] ("peso piuma"), che permette di separare la parte variabile di una classe dalla parte che può essere riutilizzata.
* [[Proxy pattern|Proxy]] fornisce una rappresentazione di un oggetto di accesso difficile o che richiede un tempo importante per l’accesso o creazione. Il Proxy consente di posticipare l’accesso o creazione al momento in cui sia davvero richiesto.
* [[Pipes and filters]] ("condotti e filtri")
* [[Private class data pattern|Private class data]] ("dati di classe privati")
 
=== Pattern comportamentali ===
Riga 57 ⟶ 60:
* [[Chain of responsibility pattern|Chain of Responsibility]] ("catena di responsabilità") diminuisce l'accoppiamento fra l'oggetto che effettua una richiesta e quello che la soddisfa, dando a più oggetti la possibilità di soddisfarla
* Il [[Command pattern|Command]] ("comando") permette di isolare la porzione di codice che effettua un'azione dal codice che ne richiede l'esecuzione.
* [[Event listener|Event Listener]] ("ascoltatore di eventi")
* [[Hierarchical visitor pattern|Hierarchical Visitor]] ("visitatore di gerarchia")
* [[Interpreter pattern|Interpreter]] ("interprete") dato un linguaggio, definisce una rappresentazione della sua grammatica insieme ad un interprete che utilizza questa rappresentazione per l'interpretazione delle espressioni in quel determinato linguaggio.
* L'[[Iterator pattern|Iterator]] ("iteratore") risolve diversi problemi connessi all'accesso e alla navigazione attraverso gli elementi di una struttura dati, senza esporre i dettagli dell'implementazione e della struttura interna del contenitore.
Riga 62 ⟶ 67:
* Il design pattern [[Memento pattern|Memento]] ("promemoria") è l'operazione di estrarre lo stato interno di un oggetto, senza violarne l'incapsulazione, e memorizzarlo per poterlo ripristinare in un momento successivo.
* L'[[Observer pattern|Observer]] ("osservatore") definisce una dipendenza uno a molti fra oggetti diversi, in maniera tale che se un oggetto cambia il suo stato, tutti gli oggetti dipendenti vengono notificati del cambiamento avvenuto e possono aggiornarsi.
* [[Single-serving visitor pattern|Single-serving Visitor]]
* [[State pattern|State]] ("stato") permette ad un oggetto di cambiare il suo comportamento al cambiare di un suo stato interno.
* Lo [[Strategy pattern|Strategy]] ("strategia") è utile in quelle situazioni dove è necessario modificare dinamicamente gli algoritmi utilizzati da un'applicazione.