Fragmented - Android Developer Podcast

016: Effective Java for Android developers : Item 2


Listen Later

In our third Fragment installment, we introduce Josh's second Item: Consider a builder when faced with many constructor parameters.

Stay tuned for more items from our "Effective Java for Android developers" Fragment series.

[audio src="http://traffic.libsyn.com/fragmented/ep_14_fragmented.mp3" preload="none" autoplay="false"]

[Download][1]

Show Notes
  • Effective Java (2nd Edition) - Joshua Bloch
  • Consider a builder when faced with many constructor parameters
    Patterns available for constructing object with parameters:
    • Telescoping Constructor Pattern - Provideconstructor with only required parameters, another with a single optional param, a third with 2 optional params... and so on.
      • Advantage: Works well for small number of parameters
      • Disadvantage: Does NOT scale well
      • JavaBeans Pattern - Callparameterless constructor to create the object; then call setter methods to set required parameter and each optional param of interest.
        • Advantage: Scales well, easy (but wordy) to read resulting code
        • Disadvantage: Allows inconsistency (if all required params not called); impossible to make classes immutable if using this pattern.
        • Builder pattern - winner!
          • Advantage: Simulates named optional parameters; allows immutable objects to be constructed; flexible
          • Disadvantage: more ceremony to actually construct the Builder Class and finally use.
          • Example usage from Android source:
            • AlertDialog Builder [androidxref.com]
            • Tip:
              • Use IntelliJ to generate your Builders easily
              • Contact us:
                • @fragmentedcast [twitter.com]
                • @donnfelker [twitter.com]
                • @kaushikgopal [twitter.com]
                • ...more
                  View all episodesView all episodes
                  Download on the App Store

                  Fragmented - Android Developer PodcastBy Donn Felker, Kaushik Gopal

                  • 5
                  • 5
                  • 5
                  • 5
                  • 5

                  5

                  68 ratings


                  More shows like Fragmented - Android Developer Podcast

                  View all
                  Design Details by Brian Lovin, Marshall Bock

                  Design Details

                  361 Listeners

                  Developer Tea by Jonathan Cutrell

                  Developer Tea

                  402 Listeners

                  Does Not Compute by Sean Washington, Rockwell Schrock

                  Does Not Compute

                  53 Listeners

                  Toolsday by Una Kravets, Chris Dhanaraj

                  Toolsday

                  48 Listeners

                  Swift Unwrapped by JP Simard, Jesse Squires, Spec Network, Inc.

                  Swift Unwrapped

                  90 Listeners