On Apr 7, 2011, at 8:09 AM, Dev WO wrote: > Hello Andrew, > >> >> Hi Xavier; >> >> I would suggest not putting the formatter in the EO class because the EO is >> model layer and the formatter really belong as part of the display logic -- >> blurring the two eventually ends up causing design problems in the long-haul. > > I completely agree with this:) > >> I think in the past when faced with this situation, I added accessors to the >> components' controllers' super-class which then "gets or creates" a >> formatter for a particular purpose (data quantity format / timestamp / >> currency etc...) which is cached in the "user info" in the WOContext >> instance for the current request-response cycle. This approach allows you >> to re-use the formatters for the request-response cycle and then just allows >> them to be garbage collected at the end of the cycle. > > That means I would have as much formatter instances as there's a request for > a specific component/page. It's probably not a big deal, it just feels > strange to me to have something that is application-wide used in a component > part.
A compared to String or Integer or... :-) Formatters should be lightweight objects that can be created, used, and discarded at will. Caching and re-using them is just an easy and obvious optimization. Also, some formatters ARE thread safe. It is the date formatting ones that seem to be a problem. > Would it be a better practice to implement those formatter in a component > super-class or have them as an interface for the components that need them? They would have to be static to be in an interface and that is not thread safe. :-) I'd do what Andrew suggests or just create what you need in your component constructor. If it is a stateless app, just keep the page cache very small and you don't have to worry about memory. Chuck >> cheers. >> >>> Sorry to jump into this to add another question:) >>> But I would have expected the formatter to not be an issue as it's not >>> actually writing data. >>> If you have a stateless app (like full of DA), how would you handle that >>> as you can actually put the formatter in Session? >>> Do you have to put the formatter inside the EO class? >> >> -- >> Andrew Lindesay >> www.silvereye.co.nz >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40anazys.com >> >> This email sent to webobje...@anazys.com >> > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net > > This email sent to ch...@global-village.net -- Chuck Hill Senior Consultant / VP Development Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com