Question

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?

Was it helpful?

Solution

There are many others:

OTHER TIPS

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.

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.

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.

We use not so much an alternative but a hybrid called MVC-ARS.

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

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top