Relationship between GUI and logic?

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Fri May 23 12:00:47 EDT 2008


David C. Ullrich a écrit :
> On Fri, 23 May 2008 09:13:50 -0400, "John Salerno"
> <johnjsal at NOSPAMgmail.com> wrote:
> 
>> "Bruno Desthuilliers" <bruno.42.desthuilliers at websiteburo.invalid> wrote in 
>> message news:4836747b$0$15488$426a74cc at news.free.fr...
>>> Ever heard of the "Model/View/Controller" pattern ?
>> Yes, I have, but I probably don't understand it well enough yet. For 
>> example, I don't  really know what is meant by phrases like "build a model", 
>> "the view registers itself with the model", "interations are sent to the 
>> appropriate controller" -- I may understand them literally, but I get the 
>> feeling that the implementation of these ideas are beyond me. 
> 
> I doubt that.
> 
> I've done things like this. I ended up with just a Model and a View,
> no Controller.

In the code snippet you gave, you do have the controller part - it's 
just merged with the view. Thruth is that the controller part does not 
map to a single, explicit, obvious *component*. It  in fact often 
happens that the controller bits are handled by various components of 
the system.

In the case of most modern GUI toolkits, the OS and GUI toolkit handles 
the first part of the controller stuff : mapping user actions to 
appropriate events, then mapping events to event handlers 
functions/methods - which, since views and controllers are usually 
tightky coupled, are most often than not methods of the view object 
itself - either because the GUI toolkit requires it or because the coder 
found it simpler and more obvious. Now even in the first case, you can 
still factor the controller part out of the view, and have the view's 
event handlers call on the controller. This may help unit-testing both 
the controller and the view and avoid having too much logic into the 
view itself.




More information about the Python-list mailing list