Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have created a very tiny framework to be able to get away from all the clutter while developing. The point of the framework is not to replace any library of choice but simply segregate the code to it's correct logic.

You can see the source on github along with a few code examples: https://github.com/erik-landvall/shift

While I try to describe the pattern I'm using I'm starting to wonder how this should be defined. And that's my question for you. What would you say the following chart symbolizes?

Flowchart of the shift framework

I like to think of it as an MVP pattern, but would like to hear your opinion.

Also, if you feel that the flowchart poorly resampling the code, give me a comment about it and I will attempt to fix it.

share|improve this question
Based on your examples it's not MVC that's for sure, the views have too much logic and the controllers are more of presenters indeed. I think MVP is probably the right choice. –  Benjamin Gruenbaum Feb 4 '13 at 12:51
My question also involves if this could be considered a different pattern then mvc or mvp I re-write the title and explain a bit better –  Erik Landvall Feb 4 '13 at 14:40

1 Answer 1

up vote 3 down vote accepted

MVP. In classic MVC, both the view and controller can access the model. In your case you have a coordinating object logical layer (the Presenter in your case, see diagram below) with knowledge of both the model and view, keeping those two isolated.

An additional comment to this. Fowler retired MVP from his catalog of patterns and split it into two: Supervising Controller and Passive View. I haven't looked into your code, but it's worth reading about them.


share|improve this answer
thanks for your answer and the links, will look them over... –  Erik Landvall Feb 4 '13 at 14:25

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.