<p>I found <a href="https://stackoverflow.com/questions/2056/what-are-mvp-and-mvc-and-what-is-the-difference">What are mvp and mvc and what is the difference</a> but it didn't really answer this question.</p>

<p>I've recently started using MVC because it's part of the framework that myself and my work-partner are going to use. We chose it because it looked easy and separated process from display, are there advantages besides this that we don't know about and could be missing out on?</p>

<p><strong>Pros</strong></p>

<ol>
<li>Display and Processing are seperated</li>
</ol>

<p><br />
<strong>Cons</strong></p>

<ol>
<li>None so far</li>
</ol>

MVC is the separation of
m
odel,
v
iew and
c
ontroller — nothing more, nothing less. It's simply a paradigm; an ideal that you should have in the back of your mind when designing classes. Avoid mixing code from the three categories into one class.
For example, while a table grid
view
should obviously present data once shown, it should not have code on where to retrieve the data from, or what its native structure (the
model
) is like. Likewise, while it may have a function to sum up a column, the actual summing is supposed to happen in the
controller
.
A 'save file' dialog (
view
) ultimately passes the path, once picked by the user, on to the
controller
, which then asks the
model
for the data, and does the actual saving.
This separation of responsibilities allows flexibility down the road. For example, because the view doesn't care about the underlying model, supporting multiple file formats is easier: just add a model subclass for each.