But yeah, i agree with all your points. In some cases lazy loading makes sense, in some it doesn't.
Though i'm not sure how concurrency is an issue, Pill Pugh's implementation is probably the easiest implementation there is, not sure why some people here recommended the error-prone "instance == null" methods.
On Sunday, March 17, 2013 9:08:34 PM UTC+2, Lew wrote:
-- On Sunday, March 17, 2013 9:08:34 PM UTC+2, Lew wrote:
> Lew wrote:Piren wrote:>> 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.--LewIf your application has a singleton that takes 200MB of memory and takes a minute to load (dont ask why :-) ), but is only needed if you use a specific part of the app, why load it on the app load?I couldn't agree more.But that is far more likely to be a local variable to that specific part of the app than a singleton.Unless, of course, you are absolutely certain to hit that "specific part of the app",and app-load is a time when people expect delay, and the time they hit that"specific part of the app" is not such a time, in which case you are far better off taking theperformance hit at app load and not during the "specific part of the app".Then I disagree.However, if it truly is a singleton, or whatever, then yeah, sure, lazy load, if thecircumstances are right, like not in that counter-scenario I just outlined, but thenyou have extra work to do it right, at least of concurrency is involved.But that isn't a general policy of insisting on using a singleton and insisting onusing lazy load, which is that against which I rail against.Never generalize.--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+unsubscribe@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+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment