Technically services in Ember are just singletons in an application instance’s DI container. They are often used to own state and handle effects because they live for the life of the application instance, they have access to the container and can inject or be injected, and they can be stubbed when testing.
But, let’s be honest. Services can be kind of clunky.
- Usually they are defined as classes, not the most friendly of abstractions for composition and reusability
- While they can import…