Un modello di design è proprio questo: un pattern utilizzato per progettare il software.
Molti programmatori intelligenti negli ultimi sei decenni si sono scoperti a scrivere codice per vari progetti utilizzando le stesse strutture di base.
Un semplice è il metodo factory, invece di scrivere:
$a = new D();
$a->foo = 'bar';
$a->baz = 'buzz';
$b = new D();
$b->foo = 'bar';
$b->baz = 'buzz';
$c = new D();
...
È molto più semplice avere una funzione che faccia tutto per te:
function makeD()
{
$temp = new D();
$temp->foo = 'bar';
$temp->baz = 'buzz';
return $temp;
}
e quindi chiamalo alcune volte:
$a = makeD();
$b = makeD();
$c = makeD();
Questo particolare modello è il modello di builder. Puoi cercarli su wikipedia , o leggere su di loro in un numero di books , ma non confonderli per essere un panacea .
I pattern di design sono solo pattern, se ti ritrovi a dire "Man, potrei davvero usare un modo semplificato di fare x
", allora puoi probabilmente trovare uno schema di progettazione per semplificare il codice. Dopo aver utilizzato alcuni modelli di progettazione, inizieranno a far parte della tua casella degli strumenti e sarai in grado di esaminare un problema e dire "Dovrei usare [insert design pattern here]
", ma se non lo fai usa un modello di design formale, va bene anche.
Direi che le interfacce sono per lo più estranee ai pattern di progettazione, sebbene alcuni pattern design utilizzino le interfacce come parte del pattern.