Why is it bad if a shared module provides a service to a
lazy-loaded module?
The lazy loaded scenario causes your app to
create a new instance every time, instead of using the singleton.
Lazy loading is the best practice of loading
expensive resources on-demand. This can greatly reduce the initial startup time
for single page web applications (SPA). Instead of downloading all the
application code and resources before the app starts, they are fetched
just-in-time (JIT), as needed.
The eagerly loaded scenario your app to create a
singleton, instead of creates new instance every time.