In most languages types are your friends. You want types to describe the entity you're dealing with as clearly as possible. You make your base class Animal
from which your Dog
inherits from, then you make your SheepDog
inherit from Dog
and finally BorderCollie
gets you something specific. (This is a terrible example, please don't quote me on this.)
Let's use a more realistic example. You have 50 different types of MyBaseEvent
. When you index your types to ElasticSearch you think "I'll explicitly say these are type MyFirstEvent
and MySecondEvent
and so on." Don't.