Introduzione

Molto spesso i problemi incontrati nello sviluppo di grossi progetti software sono ricorrenti e molto prevedibili.

I design pattern sono "schemi di soluzioni" riutilizzabili, introdotti dall'architetto Christopher Alexander.

Cit: "Ogni pattern descrive un problema che si presenta frequentemente nel nostro ambiente, e quindi descrive il nucleo della soluzione così che si possa impiegare tale soluzione milioni di volte, senza produrre due volte la stessa realizzazione"

Per noi il principio è ugualmente valido, anche se riferito al mondo dello sviluppo sw.

Vantaggi

Forniscono:

Permettono quindi di non inventare da capo soluzioni a problemi già risolti, ma di utilizzare dei "mattoni" di provata efficacia, fornendo quindi un vocabolario comune che facilita la comunicazione tra progettisti.

Svantaggi

Possono rendere la struttura del progetto/codice più complessa del necessario, infatti di volta in volta bisogna decidere se adottare semplici soluzioni ad-hoc o riutilizzare pattern noti

"When in doubt, leave it out"

"Keep it simple"

Definizioni

Definizione: descrizione di oggetti e classi comunicanti adattabili per risolvere un problema ricorrente di progettazione in un contesto specifico