If you write an interface with a lot of methods, say IPerson
, and you expect a lot of different implementations of it, it is quite common practice to provide an abstract class AbstractPerson
which implements the bulk of the functionality.
Normally AbstractPerson
is abstract, since you usually leave some key functionality unimplemented. In this case the naming makes sense.
But what is a good naming convention in case you already implemented all of IPerson, but still expect subclasses? Perhaps PersonMixin
, PersonHelper
, GenericPerson
or simply Person
? I think Person
is a bit vague, since it doesn't clearly show the intended usage.