Fork me on GitHub

What is model 2+1?

   Subject: Re: Is Turbine MVC or HMVC?
   Date: Wed, 11 Oct 2000 14:04:52 +0200
   From: Christoph Reck

Turbine follows the MVC design pattern.

  • Model - the underlying data sources (via peers or beans)
  • View - one of the templating engines
  • Controller - Turbine servlet plus your action+screen classes

Since the view and the controller are tightly coupled in Turbine, it is stated to follow the Model2 design pattern, with a + 1 addition due to way actions are used (hence Model 2 + 1).

Turbine does not directly support the Hierarchical MVC pattern, but it could be used this way by defining multiple module and template paths (would impact performance). Note that in the HMVC each MVC instance is self-contained and separable from the rest.

Note that many components within a MVC system follow themselves the MVC pattern, therefore most MVC systems are also HMVC systems (this also applies to Turbine as a whole, but your application with Turbine is normally not HMVC).

Also note that you could use Turbine in a non MVC manner, but normally it leads you to use it as MVC (which JSP does not).

I hope this clarifies your question, Christoph

Jon's Comments

That is a GREAT explanation and I'm going to use that for now on...except it isn't entirely true. :-)

The +1 was a joke on my part to see what people would do with it. I figured that people were believing this Model 2 hype with JSP and such and I wanted to improve on it. I love playing with marketing games. I read that Model 2 paper and then figured that Turbine was better than what they declared as Model 2.

Calling it Model 3 would have been like saying that Turbine was just a third generation of Model 2. So, instead I figured that making it +1 just made it appear to be an improved Model 2 model since that is what Turbine really is. :-)

Oh more reason for the +1...

It is the Apache voting style. :-)

Turbine is Model 2 .......... +1 ! :-)

-jon stevens


Understanding JavaServer Pages Model 2 architecture