MVC e architettura a 3 livelli nel gioco: qual è il livello aziendale

1

Sto facendo un gioco e ho seguito degli esempi che usano il modello di architettura MVC. Ora sto cercando di capire come questo si adatti ad un'architettura a 3 livelli. Da quello che ho raccolto finora:

  • MVC e 3 livelli sono idee separate e sono compatibili
  • MVC ha una struttura di comunicazione triangolare, mentre 3 livelli è uno stack
  • MVC può essere utilizzato all'interno della struttura a 3 livelli, con le parti MVC contenute nel livello dell'interfaccia utente come nello schema:

Il mio modello per il gioco contiene tutte le classi che descrivono il mondo del gioco astratto: tutti gli oggetti, i personaggi, le loro posizioni e velocità nel mondo, il punteggio, ecc.

Ma ora che cosa costituirebbe il livello aziendale al di sotto di questo? Poiché sono tutte le cose che normalmente assocerei al livello aziendale.

Se il diagramma in questo caso mostra forse la vista e il controller nel livello dell'interfaccia utente, con il modello contenuto nel livello aziendale sottostante?

    
posta rbennett485 28.03.2014 - 17:20
fonte

1 risposta

7

Citando il famoso articolo di Martin Fowler :

In MVC, the domain element is referred to as the model. Model objects are completely ignorant of the UI.

Quindi la risposta è, la "Business Logic" classicamente appartiene al livello del modello. (Che, di per sé può consistere in cose arbitrariamente più, sicuramente non solo oggetti di dominio anemici). Metti i tuoi oggetti di dominio mi sembra corretto.

Detto questo, lo schema architettonico MVC si adatta raramente a qualsiasi cosa pratica, per non parlare di un gioco. I giochi hanno diversi problemi architettonici e MVC non li affronta in pratica.

Dovresti concentrarti sulla separazione delle preoccupazioni e strutturare la tua logica in modo modulare, concentrandoti su una forma di presentazione separata quello si adatta al tuo problema. MVC è uno dei termini più abusati nella programmazione dell'interfaccia utente e le persone tendono a usarlo per tutto ciò che fa una presentazione separata. Pensare a "cosa MVC" non è molto utile. Concentrati su la tua architettura piuttosto che su un modello specifico.

    
risposta data 27.04.2014 - 20:07
fonte

Leggi altre domande sui tag