Andrew, >-----Original Message----- >From: Andrew Hill [mailto:[EMAIL PROTECTED]] >Sent: Monday, October 14, 2002 10:16 AM >To: Struts Users Mailing List >Subject: RE: DAO or ... ? > > >But you still call the API from the action right - is this not >invoking the >functionality that persists your data?
Yes. In fact, we only ever communicate from the Actions to the Core code via the API. This gives us wonderfully straight-forward actions (extract data from form, call appropriate API method, load form with returned data). The actions in our application are the conduits between Struts and our core code. >Seems a bit like semantic juggling to me... (after all the >persistance layer >is just an abstraction API on top of writing to >db/disk/punchcard itself...) >;-) Yoda might say: "Everything a layer is". The problem is not that something is or is not a layer, but is it useful and does the extra abstraction help or hinder?! In our project we found the concept of a solid API to work wonderfully for us. YMMV. :-) >I would however agree that there ought to be some sort of >abstracting layer >between the view and the implementation specific details of >the p-tier... I'd say that you'd want at least two layers between V and P. How about V -> C - > M -> P. We have a couple of sub-layers in the M and P layers as well. We split some of the core code facilities into sub-systems, to facilitate converting them to services at a later date. Every system is different and has unique constraints. Ours, had the risk that they would take Struts away from us, so we HAD to be interface agnostic. In the end they approved Struts (with some muttering and grumbling ... well, lots of muttering actually :-), so we had no interface rework, but it was a VERY real possibility for the first 50% of the project. Under such circumstances, layers are your friend! Simon ----------------------------------------------------------------- Simon P. Chappell [EMAIL PROTECTED] Java Programming Specialist www.landsend.com Lands' End, Inc. (608) 935-4526 -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>