dispose method

  1. @mustCallSuper
void dispose()

All disposable instances must be disposed

  • Bad:
    void main() {
       Disposable? instance;
    }
    


- Good:

 ``` dart
 void main() {
   Disposable? instance;
   instance?.dispose();
 }

Also, dispose() method can be overrided to finish all needed tasks

  • Example:
    void dispose() {
       super.dispose();
       foo.finishFetching();
    }
    

Implementation

@mustCallSuper
void dispose() {
  assert(!_disposed, 'You try to dispose the instance that was disposed');
  for (Disposable element in disposables) {
    element.dispose();
  }
  _disposed = true;
  onDispose();
}