Nascondono i costruttori delle classi e mettono dei metodi al loro posto creando una interfaccia. In questo modo si possono utilizzare oggetti senza sapere come sono implementati.
Ha lo scopo di assicurare che di una classe possa essere creata una sola istanza.
|
Fornisce una interfaccia per creare un oggetto, ma lascia che le sottoclassi decidano quale oggetto istanziare.
|
Fornisce una interfaccia per creare famiglie di oggetti connessi o dipendenti tra loro, in modo che non ci sia necessità da parte degli utilizzatori di specificare i nomi delle classi concrete all'interno del proprio codice.
|
Consentono di riutilizzare degli oggetti esistenti fornendo agli utilizzatori un'interfaccia più adatta alle loro esigenze.
Forniscono soluzione alle più comuni tipologie di interazione tra gli oggetti.