Using Dart in the client part of a web app where I have an application manager that contains a List
of application instances and references to services that are used by each application as in the following diagram
As you can see the application manager is a singleton, so are the services that it contains which are used by all apps, to me it makes sense because
- I need to have only one instance of the ApplicationManager and each service
- Easier to access services without the need to pass references
- I need to preserve the state of each service
- Almost all services have a cache
I found ways to avoid having the services as singletons which is by making them private to the library which is a feature in dart, so I initialize the services only once from the application manager, but I can't make the ApplicationsManager private because its at the top most level of the library, I would appreciate your thoughts for a way to avoid having the application manager as a singelton.