I\'m familiar with the idea and benefits of a static factory method, as described in Joshua Bloch\'s Effective Java:
Wouldn't Calendar.getInstance() be a good exmaple? It creates depending on the locale a BuddhistCalendar, JapaneseImperialCalendar or by default a GregorianCalendar.
Calendar.getInstance()