blob: 653b79a3cef0390529edf2abcad8612151fdfd46 [file] [log] [blame]
<?xml version="1.0"?>
<!--
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<document>
<properties>
<title>Turbine Model 2+1</title>
</properties>
<body>
<section name="What is model 2+1?">
<source test=""><![CDATA[
To: turbine@list.working-dogs.com
Subject: Re: Is Turbine MVC or HMVC?
Date: Wed, 11 Oct 2000 14:04:52 +0200
From: Christoph Reck Christoph.Reck@dlr.de
]]></source>
<p>
Turbine follows the MVC desing pattern.
</p>
<p>
<ul>
<li> Model - the underlying data sources (via peers or beans)</li>
<li> View - one of the templating engines</li>
<li> Controller - Turbine servlet plus your action+screen classes</li>
</ul>
</p>
<p>
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).
</p>
<p>
Turbine does not directly support the Hierachical MVC pattern, but
it cout 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.
</p>
<p>
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).
</p>
<p>
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).
</p>
<p>
I hope this clarifies your question,
Christoph
</p>
</section>
<section name="Jon's Comments">
<p>
That is a GREAT explanation and I'm going to use that for now on...except it
isn't entirely true. :-)
</p>
<p>
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.
</p>
<p>
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.
:-)
</p>
<p>
Oh yea...one more reason for the +1...
</p>
<p>
It is the Apache <a href="http://jakarta.apache.org/guidelines/decisions.html">voting style</a>. :-)
</p>
<p>
Turbine is Model 2 .......... +1 ! :-)
</p>
<p>-jon stevens</p>
</section>
<section name="Resources">
<p>
<a href="http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html">
Understanding JavaServer Pages Model 2 architecture</a>
</p>
</section>
</body>
</document>