I have heard two separate uses for the term controller when speaking of the Model View Controller methodology.
- An intermediary section of code that communicates between the Model and View, tying them together.
- The module that deals with input, similarly to how the view deals with output.
For starters, which definition is correct? I have read more that use the first definition than the second, with the second being the first one I learned.
In addition, it seems to me that both of those things are useful - indeed, when I've used MVC-like designs, I've used both of those things in some way (even if I only ever called one of them the controller). Should MVC really be defined in a way that includes both of these things? That would mean that the architecture contains the model, an input module, an output module, and an intermediate module to connect them all, and that just makes sense to me.