Model<T extends Model<T> > constructor
Model<T extends Model<T> > ()
Updating the model requires creating new instances of it since it should be immutable by design. Therefore the Model needs a generative constructor and not a factory.
Implementation
Model() {
_instances[T.runtimeType] = this;
}