I design pattern in generale sono delle tecniche "collaudate" per risolvere dei problemi ricorrenti. Su wikipedia (specialmente nella versione inglese) trovi spiegazioni ed esempi di utilizzo.
Uno dei più diffusi è l
obsever, che, in termini spiccioli, viene usato per fare in modo che un oggetto (l'osservatore) sia notificato ogni volta che un altro oggetto (l'osservato) subisce una modifica nel proprio stato.
In ogni caso si tratta di una serie di tecniche indipendenti dal linguaggio di programmazione, per cui era più una domanda per la sezione di "ingegneria del sw"