1. Strategia:
Definisce una famiglia di algoritmi, incapsula ciascuno di essi e li rende intercambiabili. La strategia consente all’algoritmo di variare indipendentemente dai clienti che lo utilizzano.
2. Decorator:
Allega responsabilità aggiuntive a un oggetto in modo dinamico. I decoratori offrono un’alternativa flessibile alla sottoclasse per estendere le funzionalità.
3. Metodo Factory
Definisce un’interfaccia per la creazione di un oggetto, ma lascia che le sottoclassi decidano quale classe istanziare. Il metodo Factory consente a una classe di rinviare l’istanza alle sottoclassi.,
4. Observer
Definisce una dipendenza uno-a-molti tra gli oggetti in modo che quando un oggetto cambia stato, tutti i suoi dipendenti vengono notificati e aggiornati automaticamente.
5. Catena di responsabilità
Evitare di accoppiare il mittente di una richiesta al suo destinatario dando a più di un oggetto la possibilità di gestire la richiesta. Concatenare gli oggetti riceventi e passare la richiesta lungo la catena fino a quando un oggetto lo gestisce.
6. Singleton
Assicura che una classe abbia solo un’istanza e fornisca un punto globale di accesso ad essa.
7., Flyweight
Usa la condivisione per supportare un gran numero di oggetti a grana fine in modo efficiente. Un flyweight è un oggetto condiviso che può essere utilizzato in più contesti contemporaneamente. Il flyweight agisce come un oggetto indipendente in ogni contesto; è indistinguibile da un’istanza dell’oggetto che non è condivisa.
8. Adapter
Converte l’interfaccia di una classe in un’altra interfaccia che i client si aspettano. L’adattatore consente alle classi di lavorare insieme che altrimenti non potrebbero a causa delle interfacce di incompatibilità.
9. Façade
Fornisce un’interfaccia unificata a un insieme di interfacce in un sistema., Façade definisce un’interfaccia di livello superiore che rende il sottosistema più facile da usare.
10. Template
Definire uno scheletro di un algoritmo in un’operazione, rimandando alcuni passaggi alle sottoclassi. Il metodo Template consente alle sottoclassi di ridefinire alcuni passaggi di un algoritmo senza modificare la struttura degli algoritmi.
11. Builder
Separa la costruzione di un oggetto complesso dalla sua rappresentazione in modo che gli stessi processi di costruzione possano creare rappresentazioni diverse.
12., Iterator
Fornisce un modo per accedere agli elementi di un oggetto aggregato in sequenza senza esporre la sua rappresentazione sottostante.
13. Composite
Componi oggetti in strutture ad albero per rappresentare gerarchie intere-parte. Composite consente ai clienti di trattare singoli oggetti e composizioni di oggetti in modo uniforme.
14. Comando
Incapsula una richiesta come oggetto, consentendo in tal modo di parametrizzare i client con richieste diverse, richieste di coda o di log e supportare operazioni annullabili.
15., Mediator
Definire un oggetto che incapsula come un insieme di oggetti interagiscono. Mediator promuove l’accoppiamento libero impedendo agli oggetti di riferirsi esplicitamente l’uno all’altro e consente di variare la loro interazione in modo indipendente.
16. State
Consente a un oggetto di modificare il suo comportamento quando il suo stato interno cambia. L’oggetto apparirà per cambiare la sua classe.
17. Proxy
Fornire un surrogato o segnaposto per un altro oggetto per controllare l’accesso ad esso.
18., Abstract Factory
Fornisce un’interfaccia per la creazione di famiglie di oggetti correlati o dipendenti senza specificare le loro classi concrete.
19. Bridge
Disaccoppia un’astrazione dalla sua implementazione in modo che i due possano variare indipendentemente.
20. Interprete
Data una lingua, definire una rappresentazione per la sua grammatica insieme a un interprete che utilizza la rappresentazione per interpretare le frasi nella lingua.
21., Memento
Senza violare l’incapsulamento, catturare ed esternalizzare lo stato interno di un oggetto in modo che l’oggetto possa essere ripristinato in questo stato in seguito.
22. Prototype
Specificare i tipi di oggetti da creare utilizzando un’istanza prototipale e creare nuovi oggetti copiando questo prototipo.
23. Visitor
Rappresenta un’operazione da eseguire sugli elementi di una struttura oggetto. Visitor consente di definire una nuova operazione senza modificare le classi degli elementi su cui opera.
Leave a Reply