Abstract factory used to create entity objects, typically declared as companion objects of entity classes.
The actual kotlin type argument of subclass without erased.
The actual type argument of subclass without erased.
Overload the invoke operator, creating an entity object just like there is a constructor.
invoke
Overload the invoke operator, creating an entity object and call the init function.