Take the 2-minute tour ×  I'm conceptually trying to understand
if I should be doing this:  item = Model() screen = View() brain
= Controller(item, screen)  or this..  brain = Controller() item
= Model(brain) screen = View(brain)  or this..  class
Controller():     def __init__(self):         item = Model(self)
screen = View(self)  or something else entirely?  share|improve
this question  5 Answers 5  up vote 11 down vote accepted  To
me, the first option makes sense. The job of the Controller is
to co-ordinate between the view and the model. From that point
of view, it makes sense for the controller to be the one that
controls references to the view and model.  You can't really
have a controller without a Model and a View, however it makes a
lot more sense to just have a View or just have a Model (for
example, in unit testing). That's why you want to pass in those
dependencies into the Controller, and not the other two.
share|improve this answer  MVC was originally defined to ease
the programming of