Aula 06: Serviços e Injeção de Dependência 💉
Organizando a Lógica do Projeto
🏛️ O que é um Serviço?
É o "motor" da sua aplicação.
- Contém lógica de negócio
- Falar com APIs
- Compartilha dados entre componentes
🏢 Por que não usar o Componente?
O componente deve cuidar apenas da "casca" (UI).
Lógica complexa em componentes torna o código difícil de manter e testar.
🛠️ Gerando um Serviço
💉 Injeção de Dependência (DI)
O Angular gerencia as instâncias para você.
Você apenas pede o serviço no construtor!
🗝️ Decorator @Injectable
Avisa ao Angular que esta classe é um serviço.
providedIn: 'root' garante que o serviço seja um Singleton.
☝️ O Singleton
Significa que existe apenas uma única instância do serviço rodando.
Se o Componente A altera um dado no serviço, o Componente B verá a mudança imediatamente!
🛠️ Como Injetar?
No construtor do componente:
- O Angular resolve a dependência automaticamente.
📊 Benefícios da DI
- Facilita Testes Unitários
- Desacopla o código
- Gestão de memória eficiente
🎯 Prática
Vamos criar um serviço de "Carrinho de Compras" que funciona em toda a aplicação!