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 
> <[email protected]<javascript:>> 
> wrote: 
> > On Thu, Mar 14, 2013 at 7:00 PM, user123 <[email protected]<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 [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.


Reply via email to