views:

60

answers:

2

What is the difference between the two architectures: Model-View-Presenter and Three-Tier?

I understand the definitions of each when read individually, but I can't readily see how they're different. Is it desktop vs web? I am currently developing a simple desktop application in Python to visualize a complicated data model via a GUI.

Thanks!

A: 

I think the main differences is that in MVP/MVC, the view gets to reach into the model to get data, while in n-tier, there's a stricter separation, where each tier is only allowed to interface with the tier directly above/below it.

Ryan Ginstrom
I thought MVC was a triangle where each individual component was able to communicate with the other two. And I thought MVP was such that the Presenter had direct communication with the Model and View, which in turn only had indirect communication with the Presenter. This later description sounds a lot like Three Tier to me. Thus my confusion.
Who8MyLunch
A: 

MVC is an UI pattern, three tier is an application architecture pattern. That is you can design your application with 3 tiers - UI, BL, data. And than use MVC in the UI tier.