In this mini Fragment, we introduce Joshua's third Item: Enforce the Singleton property with a private constructor or an enum type.
Stay tuned for more items from our "Effective Java for Android developers" Fragment series.
Show NotesEnforce the Singleton property with a private constructor or an enum type
Approaches
- Create a public static final INSTANCE variable and privatize constructor
- Same as 1 but privatize variable and expose access with provide factory method getInstance
- Single element Enums
Considerations
- First two approaches are open to Serialization attacks (deserializing creates new instance)
- To protect from those declare the fields transient + provide readResolve method
- Enums are concise, provide free serialization and ironclad Singleton guarantees and are functionally equivalent to first approach
Supplemental reading (for the diligent ones that follow shownotes)
- Dianne Hackborn regretting exposing the base Application class
- DH again saying Application is a Singleton with crappier semantics
- Elvis sightings
- @fragmentedcast [twitter.com]
- @donnfelker [twitter.com]
- @kaushikgopal [twitter.com]
Fler avsnitt av Fragmented - AI Developer Podcast
Visa alla avsnitt av Fragmented - AI Developer PodcastFragmented - AI Developer Podcast med Kaushik Gopal, Iury Souza finns tillgänglig på flera plattformar. Informationen på denna sida kommer från offentliga podd-flöden.
