Domanda

Mi chiedevo che cosa è esattamente la differenza tra MVC (che è un pattern architetturale) ed un'architettura a più livelli per un'applicazione. Ho cercato, ma non riuscivo a trovare una spiegazione semplice. Può essere Sono un po 'ingenuo su concetti MVC, quindi se qualcuno può spiegare la differenza, allora sarebbe fantastico.

applausi

È stato utile?

Soluzione

Architettura an livelli, ha normalmente ogni strato separato dalla rete. OSSIA il livello di presentazione è in alcuni server web, quindi che i colloqui di backend app server attraverso la rete per la logica di business, allora che parla a un server di database, ancora una volta attraverso la rete, e forse l'assistente di app, inoltre, segnala ad alcuni servizi a distanza (per esempio Authorize.net per l'elaborazione dei pagamenti).

MVC è un design pattern di programmazione in cui diverse porzioni di codice sono responsabili per rappresentare il Model, View, Controller e in alcune applicazioni. Queste due cose sono relative perché, per esempio lo strato di modello può avere un'implementazione interna che richiede un database per memorizzare e recuperare dati. Il controller può risiedere sul server web, e in remoto chiamare appservers per recuperare i dati. MVC astrae i dettagli di come viene implementato l'architettura di un app.

N-livello appena si riferisce alla struttura fisica di un'implementazione. Questi due sono talvolta confusi perché un disegno MVC è spesso implementata utilizzando un'architettura an livelli.

Altri suggerimenti

Se un design a 3 livelli erano come questo:

Client <-> Middle <-> Data

lo scalpiccio MVC potrebbe essere:

     Middle
     ^    |
     |    v
Client <- Data

Il che significa che:

  • in 3 livelli equivalenti, la comunicazione tra gli strati è bidirezionale e passa sempre attraverso il livello intermedio
  • nell'equivalente MVC la comunicazione è in unidirezionale ; potremmo dire che ogni "strato" viene aggiornato da quello a sinistra e, a sua volta, aggiorna quello in alto a destra -dove "sinistra" e "destra" sono semplicemente illustrativo

P.S. Client sarebbe il Visualizza e Medio controller

Questo è ciò che dire su n-tier

  

A prima vista, i tre livelli possono   sembrare simile al MVC (Model View   Controller) concetto; però,   topologicamente sono diversi. UN   regola fondamentale in una a tre livelli   l'architettura è il livello client mai   comunica direttamente con i dati   tier; in un modello a tre livelli tutto   comunicazione deve passare attraverso la   middleware di livello. concettualmente il   architettura a tre livelli è lineare.   Tuttavia, l'architettura MVC è   triangolare: la vista invia aggiornamenti   il controller, gli aggiornamenti del controller   il modello, e lo sguardo si aggiornate   direttamente dal modello.

L'unica somiglianza è che i due modelli hanno tre caselle nella loro diagrammi. Fondamentalmente essi sono completamente diversi nei loro usi. Se, infatti, non è di solito una scelta tra quale modello da usare, ma entrambi i modelli possono essere utilizzare insieme harmoneously. Ecco un buon confronto tra i due: http: // allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html

Una regola fondamentale in un'architettura a tre livelli è il livello client non comunica direttamente con il livello dati; in un modello a tre livelli tutte le comunicazioni deve passare attraverso il livello middleware.

E 'un'architettura di linea. Questo risolve il problema di come passare le informazioni tra un utente e un database. Dove come MVC è un'architettura di forma triangolare: la vista invia gli aggiornamenti per il controller, il controller aggiorna il modello, e la vista viene aggiornato direttamente dal modello. Questo affronta questioni di come un'interfaccia utente gestisce i componenti sullo schermo.

@Cherry Medio ware funziona più come un gestore di richieste o di redirector in MVC Pattern.

Vorrei spiegare un po 'su MVC, secondo me Model View Controller funziona in questo modo.

  1. client avvia la sessione con la richiesta per qualsiasi servizio.
  2. Questa richiesta viene ricevuto e gestito dal controllore (Request gestore, redirector etc)
  3. processo di controllo di un informazioni di base in merito alla richiesta e destinarli al relativo modello che può riempire la richiesta dei dati.
  4. Modello riempire la richiesta in base ai parametri passati dal controllore e inviare di nuovo i risultati al controller. (Nota:. Qui mi piace chiarire che i dati non è direttamente restituito al cliente in vera architettura MVC, piuttosto si riempie e ritornai al controllore)
  5. Regolatore di inviare tali dati a Vista (Client).
  6. Client ha il servizio richiesto di fronte a lui.

Questo è tutto su MVC che so.

Concedetevi una pausa. E non limitarvi a certi schemi quando risolvere i problemi del mondo reale. Basta ricordare alcuni principi generali, uno dei quali è separazione degli interessi .

Oltre ad essere lineari, un'altra differenza importante che non è stato sottolineato abbastanza è che nel modello N-tier, N non è necessariamente 3 file! E 'più spesso implementato come tre livelli (presentazione, app, dati) con lo strato intermedio con due sottolivelli (logica di business e di accesso ai dati). Inoltre, il modello MVC può contenere sia dati e la logica di business per la manipolazione dei dati, mentre questi sarebbero in livelli separati in n-tier.

Un'architettura a più livelli è meglio definito mediante un diagramma di distribuzione.

un'architettura MVC è meglio definito mediante un diagramma di sequenza.

Il 2 non sono gli stessi e non sono correlati e si può combinare le due architetture insieme. Molte aziende hanno preso le misure per creare un'architettura N Tier'd non solo per la distribuzione e la scalabilità, ma per il riutilizzo del codice pure.

Ad esempio, gli oggetti di business entità potrebbe dover essere consumato da un'applicazione desktop, un servizio web esposto per un cliente, una web app, o un app mobile. Semplicemente utilizzando un approccio MVC non vi aiuterà a riutilizzare qualcosa a tutti.

Conclusione: N livelli è un'architettura MVC un modello di progettazione. Sono gli stessi metafora applicata in due campi diversi.

Jerry: Ecco un semplice esempio di come i due sono legati:


Livello 1 - è costituita da modelli che comunicano con Livello 2 attraverso una sorta di servizio di rete o simili, controller per gestire convalida dell'input, calcoli e altre cose pertinenti per le viste. E contiene i punti di vista se stessi, naturalmente -. Che può essere l'interfaccia grafica in un desktop-app, o l'interfaccia web in una web-app


Livello 2 - Contiene una sorta di servizio o di altro modo di recieving messaggio Tier 1. Non ritiene / non dovrebbe sapere di Livello 1, quindi in grado di rispondere solo alle chiamate da sopra - non chiedere mai per le cose da solo. contiene anche tutti business logica.


Livello 3 -. Contiene il modello di dominio, rappresentazione dell'oggetto del database e ogni logica di comunicare e di aggiornamento del database-voci

In un modello a tre livelli ogni comunicazione deve passare attraverso il livello intermedio. Concettualmente l'architettura a tre livelli è lineare. Tuttavia, il [modello-view-controller] architettura MVC è triangolare:. La vista invia aggiornamenti al controllore, il controllore aggiorna il modello, e la vista viene aggiornato direttamente dal modello

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top