I was reading JDOM's website.
Why is the JDOM API defined in terms of concrete classes rather than interfaces?
Jason Hunter summarizes the arguments against an interface-based API for JDOM:
With interfaces everything becomes a factory, elements have to be 'imported' into new documents instead of just added, features like long-term serialization cannot be guaranteed, and the list goes on.
We started with interfaces actually. During our pre-release review to some peers we received the feedback we should try concrete classes. We did, and the design was much better for it.
I am a beginner designer. All the advice I have heard about till now is advising against using designing with concrete classes.
May be using concrete classes are appropriate in certain places. Are there any common class problems for which using concrete classes in design is okay?