Fragmented
014: Effective Java for Android developers : Item 1
We've mentioned the book "Effective Java" by Joshua Bloch quite a few times on previous episodes. At this point, everyone knows they should have read this book (quadruple times). But it's a dense read and everyone could use a reading buddy. Also, what does Effective Java look like through the eyes of an Android developer?
In this second installment of our Fragment (a.k.a mini-episode), we thought we'll do our listeners a favor and help with that reading. We introduce the very first of these venerable "Items": Consider providing static factory methods instead of constructors.
Stay tuned for more items from our "Effective Java for Android developers" Fragment series.
Show Notes:
Consider providing static factory methods instead of constructors
-
static factory method
makeText
for Toast class [androidxref.com] - ObjectAnimator [androidxref.com]:
Advantages:
- You can control the name and thus give it much more meaningful names
- You are not required to create a "new" object each time they are invoked
- You can even return an object that's a subtype of the return type (unlike constructors which only return class type)
- e.g. Java Collections framework [grepcode.com]
Disadvantages:
- Classes without public or protected constructors cannot be subclassed
- Static factory methods are not readily distinguishable from other static methods
Takeaways
- "Consider" using static factory methods (not always)
- Use
newInstance
when creating Fragments [androiddesignpatterns.com] - Use
newIntent
static factory method for creating intents inside the target activity.
Contact us:
- @fragmentedcast [twitter.com]
- @donnfelker [twitter.com]
- @kaushikgopal [twitter.com]