Modelli originariamente documentati per l'architettura. In architettura, si applicano a cose che vanno dal posizionamento della porta in una stanza alla disposizione di un villaggio.
La Gang of Four ha applicato l'idea alla programmazione orientata agli oggetti. Ci possono essere più di un modello che può essere usato per risolvere un problema, ma ogni modello avrà un'implementazione specifica. I pattern esistono in altri approcci di programmazione, ma non sono a conoscenza di libri applicabili. Come altri hanno già menzionato, i Pattern coprono implementazioni specifiche. L'utilizzo di un pattern quando non è applicato è spesso considerato un anti-pattern.
I principi non coprono l'implementazione, sebbene possano esserci approcci di implementazione standard. I principi riguardano più le questioni generali piuttosto che i problemi specifici. Per Inversion of Control, sono a conoscenza di almeno tre approcci di implementazione. Per DRY (Do not Repeat Yourself) Non conosco un approccio specifico di implementazione specifico, anche se ne uso diversi.
Si consideri
- Ti è stato richiesto di usare un Pattern come Abstract Factory Pattern come unico approccio per sviluppare un programma. Sarebbe appropriato? No, allora è più probabile un Pattern.
- Ti è stato richiesto di applicare DRY a tutti i componenti?
Sarebbe appropriato? Sì, allora è più probabile che sia un Principio.