Ok, I can live without DAO being part of struts.

Thanks,
Dave

>
>On Mon, 29 Jul 2002, David Graham wrote:
>
> > Date: Mon, 29 Jul 2002 15:15:46 -0600
> > From: David Graham <[EMAIL PROTECTED]>
> > Reply-To: Struts Users Mailing List <[EMAIL PROTECTED]>
> > To: [EMAIL PROTECTED]
> > Subject: DAO Addition to struts
> >
> > Craig,
> > You mentioned the DAO pattern in this last post on architectures.  I'm
> > wondering if you have any plans on adding a DAO framework to struts?  I
> > think it would be a nice addition and provide something that many people
> > have to design themselves.  I suppose it may be outside of the scope for
> > struts but I'll leave that up to you :-).
> >
>
>As popular as it might be, I've been a little hesitant to add model layer
>patterns to the core part of Struts.  After all, one of the values of
>these patterns is you should be able to use the same DAO objects in
>non-web contexts (so we wouldn't want to put in dependencies on servlet
>and JSP, or even Struts, APIs).  Also, putting *one* implementation of the
>pattern into Struts would seem to imply that alternative implementations
>are less legitimate -- and the spectrum of use cases for DAOs is so broad
>that I'm not sure that is a good alternative.
>
>There are DAO-like design patterns in some of the applications in the
>"contrib" directory of the CVS repository, and in many of the apps
>referenced on the resources page.  And, of course, the DAO descriptions
>from any competent patterns book should work just fine with Struts -- many
>of them come with example code that can give you a starting point.
>
> > Thanks,
> > Dave
> >
>
>Craig
>
> >
> > >From: "Craig R. McClanahan" <[EMAIL PROTECTED]>
> > >Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
> > >To: Struts Users Mailing List <[EMAIL PROTECTED]>
> > >Subject: RE: Architecture advice....
> > >Date: Mon, 29 Jul 2002 14:09:46 -0700 (PDT)
> > >
> > >
> > >
> > >On Mon, 29 Jul 2002, Chappell, Simon P wrote:
> > >
> > > > Date: Mon, 29 Jul 2002 14:06:03 -0500
> > > > From: "Chappell, Simon P" <[EMAIL PROTECTED]>
> > > > Reply-To: Struts Users Mailing List <[EMAIL PROTECTED]>
> > > > To: Struts Users Mailing List <[EMAIL PROTECTED]>
> > > > Subject: RE: Architecture advice....
> > > >
> > > > Well, what we did to seperate Struts from the backend was to 
>implement
> > > > what we called a "Firebreak". We created an abstract Java class 
>called
> > > > API.java. It's whole purpose in life was to be the application API 
>to
> > > > the model component. This would enable us to utilise alternative 
>views
> > > > and/or controllers if our needs ever took us in that direction.
> > > >
> > >
> > >Design pattern books call this the Data Access Object (DAO) pattern.  
>It's
> > >quite commonly implemented.  The best scenaro is where your DAO object
> > >returns JavaBeans that represent the underlying data (like customers 
>and
> > >orders), instead of just providing pass-through access to the 
>connection
> > >pool.
> > >
> > >One of the big things I like about it is that the actual technology 
>used
> > >to store the persistent data (and any changes to it you make later) are
> > >hidden from the business logic that uses the data.
> > >
> > >For example, you might start out by embedding JDBC calls in your DAO to
> > >load and store the data.  Later on, your DBA might split one table into
> > >two (or combine two into one) to improve efficiency -- you can tweak 
>the
> > >JDBC calls inside your DAO and never touch the business logic that uses
> > >it.  Later on, you might find it necessary to switch to EJBs for
> > >scalability -- as long as you're not adding properties to the data
> > >objects, these kinds of changes are transparent.
> > >
> > > > All functionality in the application is accessable through static
> > > > methods in the API class. This is nice for us, we removed all 
>processing
> > > > logic from the actions and put it in the main application space. Now 
>our
> > > > actions concentrate on ActionForms and calling the API methods.
> > > >
> > >
> > >Servlet context attributes can be thought of like "per-webapp statics",
> > >because they have exactly the same memory impact.  However, they 
>provide
> > >slightly more flexibility because you can subtitute different
> > >implementations of the same API interface more easily.  The negative is
> > >that you have to have a reference to the ServletContext to acquire your
> > >DAO object.
> > >
> > >The standard J2EE approach to that is to use JNDI resources - they act
> > >like static variables in that you can gain access to them directly,
> > >without giving up the flexibility of using different implementations 
>that
> > >you can do with servlet context resources.
> > >
> > > > To further the break between view and logic, we use Request and 
>Reply
> > > > objects to carry the data on the calls into and the return values 
>back
> > > > from the API.
> > > >
> > >
> > >Sounds a lot like another pattern, variously called "value objects" or
> > >"data transfer objects".
> > >
> > > > Simon
> > >
> > >
> > >Craig
> > >
> > >
> > >--
> > >To unsubscribe, e-mail:
> > ><mailto:[EMAIL PROTECTED]>
> > >For additional commands, e-mail:
> > ><mailto:[EMAIL PROTECTED]>
> >
> >
> >
> >
> > _________________________________________________________________
> > MSN Photos is the easiest way to share and print your photos:
> > http://photos.msn.com/support/worldwide.aspx
> >
> >
> > --
> > To unsubscribe, e-mail:   
><mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail: 
><mailto:[EMAIL PROTECTED]>
> >
> >
>
>
>--
>To unsubscribe, e-mail:   
><mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail: 
><mailto:[EMAIL PROTECTED]>




_________________________________________________________________
Chat with friends online, try MSN Messenger: http://messenger.msn.com


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to