I chose not to implement a session facade in my current project but have 
done it this way in other applications.  I really dislike bunches of static 
method calls so this solution works nicely.  I mispoke when I mentioned the 
factory method; it would only create the singleton instance on the first 
request, after that it would always return that instance.  You would use 
your service layer like this:

// returns same instance every time
ServiceFacade sf = ServiceFacade.getInstance();
sf.doSomeServiceMethod();

instead of

ServiceFacade.doSomeServiceMethod();

Sure, it's one more line of code but it is a cleaner design to me.

>Yep, thatīs exactly what it sounds like :-).  I would like to implement
>something similar to the session facade used in EJB environments.
>
>I like the singleton idea.  Have you implemented this yourself.  What are
>your experiences in doing it this way?
>I take it that the factory would do the job of making sure that only the
>existing instance is returned and if gone, create a new one.
>
>Have I got that right?  I certainly like the idea.
>
>Regards,
>
>Michael
>
>
>----- Original Message -----
>From: "David Graham" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Sent: Monday, July 29, 2002 8:59 PM
>Subject: Re: Architecture advice....
>
>
> > Sounds like a "how to implement a facade" problem.  I would make your
> > service layer a singleton with a factory method to retrieve the 
>instance.
> > That way you avoid the static method calls and maintain the symantics of
> > passing messages to objects (the singleton).  You also avoid creating a
>new
> > object everytime you want to use a service method.
> >
> >
> > >Hi,
> > >
> > >I had a discussion at work today concerning the best way to implement 
>our
> > >application.  A very
> > >basic discription of the framework would be the following:
> > >
> > >1. Struts + Velocity for the view
> > >2. Struts ActionServlets for the controller
> > >3. Service layer/methods for querying persistence layer
> > >4. OJB persistence layer
> > >
> > >The main debate was actually about what the service layer would look
>like.
> > >We thought about the following options:
> > >
> > >1. The service layer consists of static methods
> > >2. The service layer would consists of normal classes
> > >3. The service layer could consist of servlets
> > >
> > >The idea is that (this is nothing new of course) the service layer 
>would
> > >purely have methods such as addToShoppingBasket() or checkLogin();
> > >basically
> > >service methods which carry out the communication with the persistense
> > >layer
> > >and returns the result to the controller.
> > >
> > >The question is though, should we create a new object every time we 
>want
>to
> > >access a stateless method?  Surely that would be a bit of an overhead.
>Go
> > >with servlets?  This possibly ties it to the web-container too much and
> > >isnīt very elegant (?).  Another option would be just to use static
> > >methods;
> > >can this cause a problem when wanting to distribute to more than one
> > >server?
> > >Is it better in terms of performance?
> > >
> > >I would really appreciate some help and ideas on this.  It would make
> > >things
> > >easier in terms of deciding on the next step.
> > >
> > >Thanks in advance!
> > >
> > >Regards,
> > >
> > >Michael
> > >
> > >
> > >--
> > >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]>
> >
>
>
>--
>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