Tuesday, July 06, 2010

A short diagramed guide of a few Model-View-* patterns

UK Application Development Consulting - Model-View-*

“I find myself answering questions related to the presentation patterns repeatedly. Since I am a lazy person, I am writing this post to illustrate my understanding and interpretation of the Model-View-* patterns and their variations so I can refer back to this post later.

I understand the concerns the Model-View-* purists might have around the correctness and/or pureness of these diagrams so I do apologize for potential inaccuracies in advance and I welcome any suggestions / comments!

I am not going to explain every single Model-View-* pattern as you can find better explanations in other places. Instead, I will focus on the relationship between participant components in each pattern.

Let’s start with a list of patterns we are going to cover:

  • MVC: Model-View-Controller
  • MVP (Supervising Controller): Model-View-Presenter with Supervising Controller
  • MVP (Passive View): Model-View-Presenter with Passive View
  • MVVM: Model-View-ViewModel
  • MVVMC: Model-View-ViewModel-Controller
  • MVPoo: Model-View-ViewModel with some Poo (in ViewModel)
  • MVPo: Model-View-ViewModel with little Poo (in ViewModel)

None of these are new so you should have heard the names before, apart from the last one (MVPo) where I have come up with a new name by slightly modifying the original name.


“MVPoo” just tickled my boy-in-a-man’s-body tickle bone. Such a true and accurate name for the MV pattern we all to often find our code in…

No comments: