Junior — Middle
Explique o princípio de funcionamento do padrão Service Locator e suas principais características.
sobes.tech IA
Resposta da IA
O padrão Service Locator é uma forma de organizar o acesso a dependências e serviços numa aplicação através de um objeto centralizado (localizador). Em vez de passar explicitamente as dependências, os componentes solicitam os serviços necessários ao localizador de serviços.
Principais características:
- Gestão centralizada de dependências.
- Simplificação do código dos componentes, pois eles não sabem como os serviços são criados.
- Possibilidade de substituir as implementações dos serviços num único local.
No entanto, o padrão é criticado porque oculta as dependências, dificultando os testes e a compreensão do código, uma vez que as dependências não são evidentes.
Exemplo de uso:
class ServiceLocator {
constructor() {
this.services = new Map();
}
register(name, instance) {
this.services.set(name, instance);
}
get(name) {
return this.services.get(name);
}
}
const locator = new ServiceLocator();
locator.register('logger', console);
const logger = locator.get('logger');
logger.log('Mensagem');
Nos testes, é possível substituir os serviços por mocks, registando-os no localizador.