Alternatives to the MVC
Model View-ControllerDesign PatternsModel View-Controller Problem Overview
What are the alternative "design methods" to the Model View Controller? MVC seems to be popular (SO was built with it, I know that much) but is it the only method used?
Model View-Controller Solutions
Solution 1 - Model View-Controller
One of the best write-ups of several different Interactive Application Architecture Patterns out there, is this very detailed and well-researched blog-post. It covers Model-View-Controller, three different flavors of Model-View-Presenter, several different flavors of Presentation-Abstraction-Control, Supervising Controller, Passive View and Hierarchical MVC.
Another interesting pattern is the Presenter First pattern by Atomic Objects. It's not just a Design Pattern, it's also a Process Pattern. IOW: the name "Presenter First" is not arbitrary, it actually describes a development process, in which the Presenter gets written first, driving the design of the rest of the system.
Solution 2 - Model View-Controller
There are many others:
-
- This is common in WPF applications (though Prism uses the MVP pattern (usually))
Solution 3 - Model View-Controller
MVC is an architectural pattern. These are the other Architectural patterns you can try (from Wikipedia):
- Layers
- Multi-tier Architecture
- Presentation Abstraction Control (PAC)
- Model View Presenter (MVP)
- Model View ViewModel (MVVM)
- Pipeline
- Implicit Invocation
- Blackboard System
- Peer-to-Peer
- Service Oriented Architecture (SOA)
- Naked Objects
These are available here in Wikipedia.
Solution 4 - Model View-Controller
DCI - "Data, Communication and Interaction"
http://www.antonioshome.net/kitchen/nbdci/index.php#dci-introduction
http://www.artima.com/articles/dci_visionP.html
The Common Sense of Object Orientated Programming - MVC vs DCI
Solution 5 - Model View-Controller
MVC is part of a greater group of design patterns. I have no idea how much experience you have, so I'm not sure how to target this response. I'm a .NET programmer, but I found the Java book Head First Design Patterns extremely helpful. Design patterns are usually broken into groups with other patterns that help solve similar problems.
I also found the Data Object Factory website quite helpful as well. You should look around for some resources in your favorite language.
Solution 6 - Model View-Controller
We use not so much an alternative but a hybrid called MVC-ARS.
Solution 7 - Model View-Controller
I know the MVCS from Joe Berkovitz.
Prof. Kowarschick used that approach to develop the VCLSD-Pattern (Wiki written in german! Maybe someone has time, to translate it - as for myself I am only a beginner in programming)
MVCS: Model View Control Service
VCLSD: View Control Logic Service Data
Solution 8 - Model View-Controller
How about flux.js from Facebook? I know it's platform dependent, but it's a data flow architecture used by FB as a replacement for MVC, so I believe you can get some ideas from there too.