I must have implement MVC dozens of times in the context of various toolkits. I've noticed there are a few things that keep cropping up in the implementation which I'm not completely comfortable about. I was wondering if these are indeed things I should be looking to avoid. For instance
- The eternal Model instance - In an Single document application, There is only one instance of the Document class which always remains up to date. When a file is loaded, the content is cleared and read anew. The advantages of working like this are obvious but are there are hidden costs I'm not noticing?
- The monolithic Controller - The controller basically becomes the center of the system. all messages are routed through or by it. I remember hearing someone say that in principle, it should be possible to replace the controller with something else, a different controller. In my implementations this is usually impossible because the the controller knows everything.
MVC is such a high level concept. I'm wondering if there's some authoritative source on how exactly it should be implemented.