I’m working on some new software, and I’m trying to make it as modular as possible. I have been coding for a while..but I lack some key principles which I am learning as I go along.
In trying to make my current project modular, I am using the model-view-controller architecture. In designing my application, I have found certain things I am unsure of. So I come to you…
I’ll give you some information which may be useful:
- I am developing this application in Qt.
- It is a desktop application.
- Single user, so it is not very complicated
My questions are:
-
When implementing the various modules(models, views etc..) and all
of the classes associated with them, should I be initializing
modules within modules? Should I create a ‘model’ instance within a
‘controller’, or should I create everything in ‘MAIN’ and simply
pass the modules as references? -
My strategy is to separate my application into many MVC bundles.
Each one will follow the basic principles: model gets the data, view
displays it, and controller takes care of all interactions between
model-view, and performs all required logic. Is this correct?
I appreciate all of your help.
Thanks.
Pass the modules as references. I don’t know if Qt has the concept of packages within a bundle, but in Java, I have separate packages for the model and the view.
Yes, that’s correct MVC principles.
Sometimes in a more complicated application, your application view might consist of the GUI (a view) and a model of the GUI (a model). In this case, the application model, which is probably a database access model, interacts with the GUI model. The controller for both the GUI and the application is driven by the actions of the user.