Organization of GUIs

Lie Ryan lie.1296 at gmail.com
Thu Dec 3 21:39:24 EST 2009


On 12/4/2009 10:40 AM, Michael Torrie wrote:
> Lie Ryan wrote:
>> On 12/4/2009 12:44 AM, Michael Mossey wrote:
>>> I have a question about typical organization of GUIs. I will be using
>>> PyQt.
>>>
>>
>> Model-View-Controller (MVC) pattern.
>>
>> Model - all the business logic lives in the model.
>> View - your GUI
>> Controller - Takes input
>
> No, you've got it wrong:
>
> Model - Your data or database, some rules to enforce integrity
> Controller - your business logic
> View - Your gui, takes input

perhaps you meant MVP:
"""
* The model is an interface defining the data to be displayed or 
otherwise acted upon in the user interface.

* The view is an interface that displays data (the model) and routes 
user commands (events) to the presenter to act upon that data.

* The presenter acts upon the model and the view. It retrieves data from 
repositories (the model), persists it, and formats it for display in the 
view.
"""



MVC:

"""
Model
     Is the domain-specific representation of the data upon which the 
application operates. Domain logic adds meaning to raw data (for 
example, calculating whether today is the user's birthday, or the 
totals, taxes, and shipping charges for shopping cart items). When a 
model changes its state, it notifies its associated views so they can 
refresh.
     Many applications use a persistent storage mechanism (such as a 
database) to store data. MVC does not specifically mention the data 
access layer because it is understood to be underneath or encapsulated 
by the model. Models are not data access objects; however, in very 
simple apps that have little domain logic there is no real distinction 
to be made. Also, the ActiveRecord is an accepted design pattern which 
merges domain logic and data access code - a model which knows how to 
persist itself.

View
     Renders the model into a form suitable for interaction, typically a 
user interface element. Multiple views can exist for a single model for 
different purposes.

Controller
     Receives input and initiates a response by making calls on model 
objects.
"""


[*] all source taken from wikipedia.



More information about the Python-list mailing list