near bottom :-) ----- Original Message ----- From: "Eddie Bush" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Monday, July 29, 2002 11:37 PM Subject: Re: Architecture advice....
> David Graham wrote: > > > Now we're onto "how to design a factory method" :-). So if you have > > many different service objects you could just compose your > > ServiceFacade of these objects and publish their interfaces. This is > > the true use of the facade pattern so your code doesn't need to know > > about all of the objects behind the facade. You would do this like so: > > ServiceFacade{ > > private SpecialServiceClass special; > > > > public doService(){ > > special.doService(); //delegate call to internal service object > > } > > } > > > > Notice that all interaction with SpecialServiceClass is done through > > the facade leaving you free to rip out SpecialServiceClass in the > > future and replace it with something else. > > > > If you really want to do the factory thing you have 2 options: > > 1. A factory method for each service class > > public SpecialServiceClass createSpecialServiceClass()... > > public SpecialService2 createSpecialService2()... > > > > 2. One factory method with parameter telling which type of service > > class to return. public Object create("SpecialServiceClass") > > > > I would go for the facade pattern so most of your code only knows > > about the facade and not the implementation classes. > > > > I hope this helps. > > Why not name your services. Then, use a properties file to figure out > what the actual class is. If all you ever programmed to was an > interface, you could switch implementations out very easily. Just edit > the properties file and restart you app! > > Ex: > > services.serviceName=com.mycompany.services.ServiceClass1 > > ... then ... > > public ServiceInterface create("serviceName") > wow, nice one Eddie. The discussion is getting better and better! Christ, there is so much to look up in order to implement your ideas (which I think are great!). Regards, Michael > Ummmm - I believe that addresses any concerns you may have, but I sure > welcome suggestions! ;-) > > > > -- > 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]>