If objects that are registered inside GetIt implements Disposable the
onDispose method will be called whenever that Object is unregistered,
reset or its enclosing Scope is popped
Very simple and easy to use service locator
You register your object creation factory or an instance of an object with registerFactory,
registerSingleton or registerLazySingleton
And retrieve the desired object using get or call your locator as function as its a
callable class
Additionally GetIt offers asynchronous creation functions as well as functions to synchronize
the async initialization of multiple Singletons
If an object implements the ShadowChangeHandler if will get notified if
an Object with the same registration type and name is registered on a
higher scope which will shadow it.
It also will get notified if the shadowing object is removed from GetIt
If your singleton that you register wants to use the manually signalling
of its ready state, it can implement this interface class instead of using
the signalsReady parameter of the registration functions
(you don't really have to implement much ;-) )