<p>While going through university and from following the development of SO, I've heard a lot about the Model-View-Controller architectural design pattern. I inadvertently used the MVC pattern even before I knew what it was, and still use it in my everyday job. From what I've seen, it's probably the most popular pattern used today. What I haven't heard much about though, are the alternative patterns you can use instead of MVC. What options are there, and for what reasons would you decide to use them over MVC? I'm also interested in knowing the types of systems they are typical of being used for. Finally, what are the pros and cons that come along with using them?</p>

Passive View -
http://martinfowler.com/eaaDev/PassiveScreen.html
Supervising Controller -
http://martinfowler.com/eaaDev/SupervisingPresenter.html
Model-View-Presenter -
http://martinfowler.com/eaaDev/ModelViewPresenter.html
My personal favorite is the
Passive View
. More testable than others I've seen including MVC.