Kristopher Micinski wrote:

> I guess the bigger problem that in Android static data members cannot 
> be statically checked to be "alive".  By this I mean: you should try 
> to get as much static checking as possible, and if you're using 
> statics you don't have any ability to properly check this. 
>
> Moreover, in Android it's a fact of life that your app will die and 
> restart.  You can really only use statics for "caching" type purposes, 
> but working with them in a safe way quickly becomes extremely 
> complicated.  Instead of doing this, you can typically replace 
> singletons with some Android specific utility (a Service or 
> ContentProvider, say..) that allows you to implement the "singleton" 
> type pattern. 
>
> This really *is* a pretty frequent problem when people get UI elements 
> stuck into static variables and then users rotate the screen :-) 
>
> Kris 
>
> On Thu, Mar 14, 2013 at 7:11 PM, Mark Murphy 
> <mmu...@commonsware.com<javascript:>> 
> wrote: 
> > On Thu, Mar 14, 2013 at 7:00 PM, user123 <ivans...@gmail.com<javascript:>> 
> wrote: 
> >> What is the problem with singleton? 
> > 
> > 
> http://stackoverflow.com/questions/7026507/why-are-static-variables-considered-evil
>  
> > 
> http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons 
> > 
> > And, since they don't seem to emphasize the point quite enough for my 
> > taste: static data members are, by definition, memory leaks. How *bad* 
> > of a memory leak they are depends on what they are and how they are 
> > used. 
> > 
> > Like many programming techniques, singletons can be used as a scalpel 
> > or a sledgehammer. The general advice against singletons is because 
> > most people reading that advice are inexperienced and are likely to do 
> > damage with either a scalpel or a sledgehammer. 
> > 
> > On the whole, AFAICT, tolerance for singletons decreases with 
> > increased production Java development experience, based on the 
> > conversations that I have had on the topic over the past few years. 
>
>
I've been using Java professionally for fourteen years.

The biggest problem I have with singletons is that everyone for some 
god-awful reason
insists on lazily instantiating them. Why?

Lazy instantiation is lazy. What's wrong with non-lazy instantiation? Then 
you can use 
a 'final' reference to the singleton instance that exists without effort or 
overhead.

-- 
Lew
 

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
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 android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to