75

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?

Steve Duitsman
  • 2,749
  • 5
  • 27
  • 39
Teifion
  • 108,121
  • 75
  • 161
  • 195

8 Answers8

52

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.

SailsMan63
  • 239
  • 3
  • 14
Jörg W Mittag
  • 363,080
  • 75
  • 446
  • 653
37

There are many others:

Jason Olson
  • 3,616
  • 2
  • 21
  • 24
20

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.

8

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

java.is.for.desktop
  • 10,748
  • 12
  • 69
  • 103
3

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.

Hector Sosa Jr
  • 4,230
  • 27
  • 30
  • 2
    As an aside, I read the Head First book as a c# programmer, and the examples were easy enough to understand without Java experience. – Steve Duitsman Sep 28 '08 at 14:38
2

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.

Novellizator
  • 13,633
  • 9
  • 43
  • 65
2

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

Himanshu
  • 31,810
  • 31
  • 111
  • 133
Ruben MM
  • 21
  • 2
1

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

Community
  • 1
  • 1
dacracot
  • 22,002
  • 26
  • 104
  • 152