Fragmented - An Android Developer Podcast

The Fragmented Podcast is a podcast for Android Developers hosted by Donn Felker and Kaushik Gopal. Our goal is to help you become a better Android Developer. We chat about topics such as Testing, Dependency Injection, Patterns and Practices, useful libraries, and much more. We will also be interviewing some of the top developers out there. Subscribe now and join us on the journey of becoming a better Android Developer.

http://www.fragmentedpodcast.com

subscribe
share






episode 18: 018: Effective Java for Android developers : Item 3


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 Notes
  • Effective Java (2nd Edition) - Joshua Bloch

Enforce the Singleton property with a private constructor or an enum type

Approaches

  1. Create a public static final INSTANCE variable and privatize constructor
  2. Same as 1 but privatize variable and expose access with provide factory method getInstance
  3. 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
Contact us:
  • @fragmentedcast [twitter.com]
  • @donnfelker [twitter.com]
  • @kaushikgopal [twitter.com]


fyyd: Podcast Search Engine
share








 October 8, 2015  11m