Honestly i don't get some of the comments here. Yeah, a bad programmer that doesn't understand how Java works will fuck up with Singletons .. but that doesn't mean Singletons are evil. As was already stated - if they are so evil, why is the Android API using them for pretty much anything that makes sense as a Singleton?
In the article you posted, he gave a bad example... a bad programmer would do what he did (since that is obviously prone to errors).. what's the point of finding a way to make something look bad and thus deduce it is bad? Eating cement is bad for you, thus cement is evil? If i have an app that has some class that does heavy calculations and to do those faster, it can pre-calculate what it can (which still takes time)... why not do it as a singleton? Would you rather have the user wait again and again rather than keep a singleton with those pre-calculations to speed everything up? Same applies for Lazy loading... if that Singleton is only used for some part of the app that might not be used frequently, why not lazy load it? (especially if it has a fat memory footprint) P.S - His example is even funnier since i do the exact opposite - i use a static variable to see when Android did in fact close my app (since it is being a bastard and not telling me it did) On Sunday, March 17, 2013 5:28:47 PM UTC+2, G. Blake Meike wrote: > > @Lew on 3/14: +many Why, oh why, do people insist on lazy initialization? > > A lot of the debate about singletons ignores specifics. I bet nobody has > a problem with: > > public static final String MY_CONSTANT = "CONSTANT"; > > That's a singleton. Singletons that are mutable are weirder. Lazily > initialized singletons that are mutable are the devil's tools. > > Further, as I point out here: > > http://portabledroid.wordpress.com/2012/05/04/singletons-in-android/ > > "Singleton" is a relative term. There is nearly no such thing as a > singleton (well, maybe the earth, or the sun, or something like that). > There are only singletons in context. I have come to see many of the > problem devs have with singletons not as a discussion of singletons > themselves, but as a misunderstanding of the context in which they are > singletons. > > -blake > -- -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

