model/observable/observable library
The library provides utility classes in addition to package:observe.
Objects implementing the ObserveAware and ChangeAware interfaces are
very similar to objects with Observable
, with a much lower verbosity
and smaller implementation. Classes using these may be migrated to use
Observable
instead.
ObservableReference and ObservableComposite provide base classes for
complex domain objects that aren't able to implement Observable
.
TODO(google): check with jmesserly: how to merge these with package:observe
Classes
-
Change<
T> - Change record with previous and following values.
-
ChangeAware<
T> - Allows listening on change pairs.
-
ChangeNotificationProvider<
T> - Provides notification coalesce support for the other ChangeAware classes.
-
ObservableComposite<
T> - Merges multiple updates of ObserveAwares and emits a single update notification stream.
-
ObservableReference<
T> - A mutable object holder that allows listening on a stream of changes.
-
ObservableView<
T> - A read-only 'view' of something. Allows getting the current value and listening for values and changes.
-
ObservableViewMixin<
T> - Implements methods of ObservableView in terms of the basic value and stream properties.
-
ObserveAware<
T> - Allows listening on changes.