Richiede una spiegazione dettagliata ma cercherò di abbozzare le differenze al meglio delle mie conoscenze.
I modelli sono comunanza distillata che trovi nei programmi. Ci permette di decostruire una grande struttura complessa e costruire utilizzando parti semplici. Fornisce una soluzione generale per una classe di problemi.
Un grande software complesso passa attraverso una serie di decostruzioni a diversi livelli. A livello generale, i modelli architettonici sono gli strumenti. A livello più piccolo, i modelli di progettazione sono gli strumenti e a livello di implementazione, i paradigmi di programmazione sono gli strumenti.
Un modello può verificarsi a livelli molto diversi. Vedi frattali . Ordinamento rapido, Ordinamento unito sono tutti modelli algoritmici per organizzare un gruppo di elementi in un ordine.
Per una visione più semplicistica:
- Paradigmi di programmazione - specifici del linguaggio di programmazione
- Modelli di progettazione : risolve i problemi ricorrenti nella costruzione del software
- Modelli architettonici : organizzazione strutturale fondamentale per i sistemi software
Gli idiomi sono tecniche di programmazione specifiche del paradigma e del linguaggio che riempiono i dettagli di basso livello.
I modelli di progettazione sono generalmente associati a punti in comune a livello di codice. Fornisce vari schemi per perfezionare e costruire sottosistemi più piccoli. Di solito è influenzato dal linguaggio di programmazione. Alcuni modelli diventano insignificanti a causa dei paradigmi linguistici . I design pattern sono tattiche di media scala che arricchiscono parte della struttura e del comportamento delle entità e delle loro relazioni.
Mentre i modelli architettonici sono visti come elementi comuni a un livello superiore rispetto ai modelli di progettazione. I modelli architettonici sono strategie di alto livello che riguardano componenti su larga scala, proprietà globali e meccanismi di un sistema.
Come si ottengono i modelli? Attraverso:
- riutilizzo,
- classificazione
- e infine l'astrazione per distillare la comunanza.
Se hai seguito i pensieri di cui sopra. Vedrai che Singleton è un "design pattern" mentre MVC è uno dei pattern "architettonici" per gestire la separazione delle preoccupazioni.
Prova a leggere:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern