Qual è la differenza tra modelli di progettazione e modelli architettonici?

Quando leggiamo di modelli di design su Internet, notiamo che ci sono 3 categorie:

  • creazionale
  • Strutturale
  • comportamentale

Ma quando creiamo l’architettura di un software, pensiamo a MVP, MVC o MVVM.

Ad esempio, tra i modelli creazionali ho trovato il pattern singleton , ma ho anche usato singleton nel mio MPV.

Quindi la mia domanda è: è un modello di progettazione una struttura su tutta la struttura di un prodotto?

Richiede una spiegazione dettagliata ma cercherò di delineare le differenze al meglio delle mie conoscenze.

I pattern sono comunanza distillata che trovi nei programmi. Ci permette di debuild una struttura complessa di grandi dimensioni e build usando parti semplici. Fornisce una soluzione generale per una class di problemi.

Un grande software complesso passa attraverso una serie di decostruzioni a diversi livelli. A grandi livelli, gli schemi 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. Vedere i frattali . Ordinamento rapido, Unisci ordinamento sono tutti schemi algoritmici per l’organizzazione di un gruppo di elementi in un ordine.

Per una visione più semplicistica:

Programming paradigms Specific to programming language ...................... Design patterns Solves reoccurring problems in software construction ...................... Architectural patterns Fundamental structural organization for software systems ...................... 

Gli idiomi sono tecniche di programmazione specifiche per il paradigma e linguistiche che riempiono dettagli di basso livello.

Gli schemi di progettazione sono generalmente associati a elementi comuni a livello di codice. Fornisce vari schemi per la raffinazione e la costruzione di sottosistemi più piccoli. Di solito è influenzato dal linguaggio di programmazione. Alcuni schemi impallidiscono nell’insignificanza a causa dei paradigmi linguistici . I modelli di progettazione sono tattiche di media scala che incidono parte della struttura e del comportamento delle quadro e delle loro relazioni.

Mentre i modelli architettonici sono visti come comunanza a livello superiore rispetto ai modelli di progettazione. I modelli architettonici sono strategie di alto livello che riguardano componenti su larga scala, le proprietà e i meccanismi globali di un sistema.

Come vengono ottenuti i modelli? Attraverso :

  1. riutilizzo,
  2. classificazione
  3. e infine l’astrazione per distillare la comunanza.

Se hai seguito i pensieri di cui sopra. Vedrai che Singleton è un “modello di progettazione” mentre MVC è uno degli schemi “architettonici” per affrontare la separazione delle preoccupazioni.

Prova a leggere su:

  1. http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
  2. http://en.wikipedia.org/wiki/Design_pattern
  3. http://en.wikipedia.org/wiki/Anti-pattern

I modelli di progettazione sono modelli ben noti per risolvere problemi tecnici in un modo che si è dimostrato molte volte. I modelli di progettazione sono strutture e pratiche di progettazione comuni che consentono di creare un software orientato agli oggetti riutilizzabile. Esempi di modelli di progettazione sono Pattern di fabbrica, Singleton, Facciata, Stato, ecc. I modelli di progettazione possono essere utilizzati per risolvere problemi più piccoli in tutta l’applicazione e sono molto più facili da iniettare, modificare, aggiungere rispetto all’architettura generale

i modelli di architettura sono modelli ben noti per risolvere i problemi di architettura dell’applicazione software. L’architettura dell’applicazione software è il processo di definizione di una soluzione strutturata che soddisfa tutti i requisiti tecnici e operativi. L’architettura dell’applicazione è l”organizzazione’ generale del codice. Esempi di architetture diverse possono essere MVC, MVVM, MVP, n-layer (cioè UI-BLL-DAL), ecc. L’architettura in genere deve essere decisa in anticipo e spesso è difficile cambiare una volta che l’applicazione è stata creata.

Bene, per la parte principale è una questione di lingua. Secondo la mia esperienza, il confine tra design e architettura, per quanto riguarda il software, è un ampio fiume con la sua larghezza risultante dal livello dell’acqua, che a sua volta è influenzato principalmente dalle stagioni di marketing. Generalmente il termine “design” viene utilizzato con un forte aspetto del comportamento del prodotto software riconosciuto dagli utenti finali, mentre “architettura” rappresenta la struttura tecnica di un software, ovvero i componenti, le librerie, i protocolli e qualsiasi altra cosa necessaria per soddisfare design. I “modelli di progettazione” assumono due ruoli: 1 ° sono considerati best practice per risolvere una categoria di problemi (più o meno) standard, non di prodotti; 2 aiutano gli sviluppatori a comunicare. Rimanendo con il tuo esempio di Singleton, ci permette di sapere di cosa si tratta la meccanica semplicemente usando la parola, invece di spiegare ogni volta, che abbiamo creato una singola istanza usando un dataspace designato (variabile o altro) che è impostato in un modo controllato ed è garantito di essere l’unico, perché abbiamo protetto il costruttore della class ecc. Quindi IMHO la risposta breve alla tua domanda è: dipende da chi sta parlando. Ha senso?

Gli elementi architettonici tendono verso raccolte di classi o moduli, generalmente rappresentati come scatole. I diagrammi sull’architettura rappresentano il livello più alto che guarda in basso, mentre i diagrammi delle classi sono al massimo livello atomico. Lo scopo dei modelli di architettura è capire in che modo le parti principali del sistema si adattano, come i messaggi e i dati fluiscono attraverso il sistema e altri problemi strutturali. Gli schemi di architettura utilizzano una varietà di tipi di componenti, ciascuno composto tipicamente da moduli successivamente più piccoli. Ogni componente ha una responsabilità all’interno dell’architettura I modelli di progettazione sono modelli di progettazione di livello basso o di class per particelle più piccole di applicazioni.

Per maggiori informazioni: https://www.oreilly.com/ideas/contrasting-architecture-patterns-with-design-patterns