016: Effective Java for Android developers : Item 2

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.


Show Notes

Consider a builder when faced with many constructor parameters

Telescoping Constructor Pattern

  • Provide constructor 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

  • Call parameterless 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:


Contact us: