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)
- View sends new input to Controller
- Controller sends the request to Model with data it recieved to one central method of Model
- Model takes this data and internally processes it with its methods, and returns the data to controller
- Controller tells the View to update was completed and to update the View
- 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
- Controller sends the data to Model
- Model calls respective Service to process the data
- 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.