Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #7134
| Date | 2011-08-16 06:57 -0700 |
|---|---|
| From | Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> |
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Singleton Pattern |
| References | (2 earlier) <j2b8q2$6pq$1@dont-email.me> <d490d89a-2e63-4099-9629-c275f2cf9847@glegroupsg2000goo.googlegroups.com> <4o6dnfZWI_mOZtTTnZ2dnUVZ_oqdnZ2d@earthlink.com> <l4udnXOiVIQ2itfTnZ2dnUVZ_uKdnZ2d@posted.palinacquisition> <mpqdnaDwH__n8NfTnZ2dnUVZ_q6dnZ2d@earthlink.com> |
| Message-ID | <IbydnYJTAt_Y6tfTnZ2dnUVZ_vWdnZ2d@posted.palinacquisition> (permalink) |
On 8/16/11 6:15 AM, Patricia Shanahan wrote: > [...] >> In C#, the run-time is permitted to, and in fact does, delay class >> initialization until the class is actually accessed. I'd just always >> assumed Java took advantage of the same optimizations. > > I read the last sentence as being a bit stronger than that. The JVM is > required to delay class initialization until it is needed. That's my read too. And yes, that's even stronger assurance than what .NET provides. So no real worries about premature initialization (see below). > [...] Of course, > the singleton could have another static method that gets called in a > significant number of program runs that never call the getInstance > method. If it does, it might be simpler and cleaner to refactor to > change that in preference to jumping through hoops to avoid creating the > instance during class initialization. Exactly. Such a situation is most likely to come about due to poor class design anyway, and so is not really a concern. Much easier to just put the unrelated code that was potentially incurring the singleton initialization without using the singleton into a different class than to worry about actually writing code to defer singleton initialization explicitly. Or looked at another way: if someone has messed up the class design such that a singleton class is used even though the singleton instance is never actually needed, I'm not sure I trust that person to correctly implement even the basic explicit singleton initialization synchronization code. Even in that case, better to suffer the potential performance hit than to allow them to try to get the explicit initialization right. So I would not be worried at all about using a field initializer to deal with singleton initialization. It really is likely to be the best approach regardless of the situation, in all but the most unusual scenarios. Pete
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar
Singleton Pattern "vbhavsar@gmail.com" <vbhavsar@gmail.com> - 2011-08-13 13:56 -0700
Re: Singleton Pattern markspace <-@.> - 2011-08-13 14:41 -0700
Re: Singleton Pattern Patricia Shanahan <pats@acm.org> - 2011-08-13 14:48 -0700
Re: Singleton Pattern Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-08-13 16:43 -0700
Re: Singleton Pattern Ian <m4r35n357@gmail.com> - 2011-08-15 15:00 +0100
Re: Singleton Pattern Lew <lewbloch@gmail.com> - 2011-08-15 07:56 -0700
Re: Singleton Pattern Patricia Shanahan <pats@acm.org> - 2011-08-15 22:07 -0700
Re: Singleton Pattern Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-08-16 00:09 -0700
Re: Singleton Pattern Patricia Shanahan <pats@acm.org> - 2011-08-16 06:15 -0700
Re: Singleton Pattern Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-08-16 06:57 -0700
Re: Singleton Pattern Patricia Shanahan <pats@acm.org> - 2011-08-16 09:25 -0700
Re: Singleton Pattern Peter Duniho <NpOeStPeAdM@NnOwSlPiAnMk.com> - 2011-08-16 18:10 -0700
Re: Singleton Pattern Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-08-13 20:56 -0400
Re: Singleton Pattern Lew <lewbloch@gmail.com> - 2011-08-13 21:12 -0700
Re: Singleton Pattern Rajeev <rajeev.nospam@gmail.com> - 2011-08-14 06:37 -0700
csiph-web