In GRASP ( link ), un controller (use case controller) è definito come:
A use case controller should be used to deal with all system events of a use case, and may be used for more than one use case (for instance, for use cases Create User and Delete User, one can have a single UserController, instead of two separate use case controllers)
Riesco a vedere alcune somiglianze tra questo e il controller MVC. Tuttavia, non vedo una linea guida standard su come progettare un controller MVC. La maggior parte delle volte le persone dicono che dipende dallo sviluppatore e dal design dell'applicazione. Quindi mi chiedo se posso usare le linee guida sopra per progettare il controller MVC?
Per essere più specifici, supponiamo che un'applicazione abbia una pagina per visualizzare un elenco di prodotti in una tabella. Ogni prodotto viene visualizzato come una riga. Ogni riga ha un pulsante per ripristinare il prodotto (o qualsiasi altra operazione commerciale che abbia senso). Quindi, come vedo, questa pagina ha 2 casi d'uso (2 operazioni commerciali): elencare i prodotti e rifornire il prodotto.
Dalle linee guida di cui sopra, probabilmente avrò 2 case case controller per 2 casi d'uso. Quelli sono mappati a 2 controller MVC? O hai solo bisogno di un controller di prodotto con 2 azioni per 2 casi d'uso?
Se hai solo bisogno di un controller del prodotto, che ne dici di una pagina che ha molte operazioni commerciali nella stessa pagina? Presto il controller diventerà troppo grande. Naturalmente se una pagina ha troppe operazioni, potrebbe non essere una buona progettazione dell'interfaccia utente, ma a volte gli sviluppatori non hanno scelta perché i clienti vogliono che sia così conveniente