I tend to follow the pseudo-conventions established by Java Core/Sun, e.g. in the Collections classes:
List
- interface for the "conceptual" objectArrayList
- concrete implementation of interfaceLinkedList
- concrete implementation of interfaceAbstractList
- abstract "partial" implementation to assist custom implementationsI used to do the same thing modeling my event classes after the AWT Event/Listener/Adapter paradigm.