Poolable abstract class
Objects of this class can be pooled in the ObjectPool for later reuse.
Should be added as a mixin.
abstract class Poolable {
 /**
  * Creates a new [Poolable] of [Type] [type].
  *
  * The instance created with [createPoolable] should be created with
  * a zero-argument contructor because it will only be called once. All fields
  * of the created object should be set in the calling factory constructor.
  */
 factory Poolable.of(Type type, CreatePoolable createPoolable) {
   return ObjectPool.get(type, createPoolable);
 }
 /**
  * If you need to do some cleanup before this object moves into the Pool of
  * reusable objects.
  */
 void cleanUp();
 /**
  * Calls the cleanup function and moves this object to the [ObjectPool].
  */
 void moveToPool() {
   cleanUp();
   ObjectPool.add(this);
 }
}
Constructors
factory Poolable.of(Type type, CreatePoolable createPoolable) #
Creates a new Poolable of [Type] [type].
The instance created with createPoolable should be created with a zero-argument contructor because it will only be called once. All fields of the created object should be set in the calling factory constructor.
factory Poolable.of(Type type, CreatePoolable createPoolable) {
 return ObjectPool.get(type, createPoolable);
}
Methods
abstract void cleanUp() #
If you need to do some cleanup before this object moves into the Pool of reusable objects.
void moveToPool() #
Calls the cleanup function and moves this object to the ObjectPool.
void moveToPool() {
 cleanUp();
 ObjectPool.add(this);
}