MVC è un'architettura della GUI o un'architettura per la GUI e il dominio?

2

Fowler fa riferimento a MVC , come un'architettura GUI:

There have been many different ways to organize the code for a rich client system. Here I discuss a selection of those that I feel have been the most influential and introduce how they relate to the patterns.

Se MVC è un'architettura della GUI, allora dì che la M in MVC sono le regole aziendali o il dominio non è sbagliato?

    
posta Maykonn 08.11.2013 - 21:46
fonte

3 risposte

6

MVC è stato originariamente progettato per risolvere i problemi nelle GUI di architettura. Scollega il processo di estrazione dei dati dal modello per presentarlo dal processo di presentazione. Fondamentalmente è un'applicazione del Principio di Responsabilità Unica alle GUI.

Questo ha una serie di grandi vantaggi: elimina la necessità di avere codice logico dal livello di presentazione e rende i controllori testabili, aumentando così la qualità e l'affidabilità. Le prime GUI Web, come l'ASP classico, contenevano codice logico incorporato in pagine HTML che era difficile da mantenere e ti faceva sentire sporco.

Il Model è fondamentalmente una scatola nera che rappresenta l'applicazione e i suoi dati e tipicamente sarà un'applicazione a più livelli. Il View è quello di visualizzare i dati dall'applicazione e in genere passare comandi e dati indietro per aggiornare l'applicazione. Il Controller media tra Model e View , presentando i dati a View e comandi a Model .

Quindi Model è, come dici tu, il dominio o le regole aziendali (o potrebbe essere solo un database), ma l'intera architettura: viste per presentare dati e controller per passare dati e comandi avanti e indietro tra Model and the Views - è molto un framework GUI.

    
risposta data 09.11.2013 - 02:28
fonte
4

Ha ragione.

La M in MVC dice che esiste una sorta di "dati", ma non dice nulla di come questi dati siano strutturati o recuperati. Può essere praticamente qualsiasi cosa, dall'archivio in memoria al database al webservice.

C'è anche la V di MVC. Che è strettamente legato all'interfaccia utente. Quindi se usi MVC per qualcosa di diverso dall'interfaccia utente, la V non avrà molto senso e quindi l'intera cosa non avrà molto senso.

    
risposta data 08.11.2013 - 22:59
fonte
2

MVC non è un modello GUI, è un modello comune per disaccoppiare un modello da come viene visualizzato e controllato. L'ho visto usato per i server di gioco in cui vari controller (persone, avversari, giocatori di rete) e visualizzazioni diverse (modalità di simulazione, su una rete, diritto allo schermo) devono condividere un modello comune (i tuoi oggetti di gioco).

Per prendere qualsiasi strumento e convertirlo in un solo ruolo, solo quel ruolo ti impedirà di usarlo per risolvere altri problemi simili.

    
risposta data 09.11.2013 - 00:33
fonte

Leggi altre domande sui tag