Raggruppamento di modelli e servizi nel modello MVC?

1

In questi giorni, tutto ciò che sento è come MVC dovrebbe contenere un ulteriore livello chiamato servizi, trasformandolo in S MVC. Ma per me sembra un disaccoppiamento eccessivo e invece voglio ingegnerizzare la mia app in questo modo (esempio per cambiare il nome utente)

  1. View sends new input to Controller
  2. Controller sends the request to Model with data it recieved to one central method of Model
  3. Model takes this data and internally processes it with its methods, and returns the data to controller
  4. Controller tells the View to update was completed and to update the View
  5. View updates itself with data given by Controller

Mi è stato detto che Model non dovrebbe lavorare direttamente sui dati e invece dovrebbe usare i livelli di servizio per gestire la logica di bussiness, quindi il flusso cambierebbe in questo modo

  1. Controller sends the data to Model
  2. Model calls respective Service to process the data
  3. Model updates the data after Service processes them Rest is the same

Per me, la prima soluzione sembra più elegante e più tardi sembra di fare di un Modello un altro Controller con dati che si basano su Servizi, che è una specie di logica strana e aggiunge un ulteriore livello di complessità all'intera app.

    
posta The Law 30.12.2017 - 16:45
fonte

2 risposte

3

Il livello extra consente di essere indipendenti rispetto al livello dati. Ciò introduce flessibilità, consentendo una serie di cose, tra cui:

  • unità di test di business logic, senza dipendenza dalla tecnologia data layer
  • supporta più livelli di dati
  • passare alla tecnologia dei livelli di dati diversi
  • ecc.

Martin Fowler è molto più bravo a spiegare questo: link

    
risposta data 31.12.2017 - 05:23
fonte
0

Suggerirei di leggere questa risposta su Quanto è essenziale creare un livello di servizio? Indica diversi motivi per cui è necessario implementare un livello di servizio. Se pensi di non averne bisogno, probabilmente il tuo caso d'uso è troppo semplice.

    
risposta data 03.01.2018 - 12:11
fonte

Leggi altre domande sui tag