Встречается на 8% собеседований по QA
Что такое сервис локатор
Сервис локатор (Service Locator) — это паттерн проектирования, который предоставляет глобальную точку доступа к сервисам без жесткой привязки к их реализациям. Он действует как централизованный реестр, позволяющий получать зависимости динамически.
Пример на Java:
java
public class ServiceLocator {
private static Map<Class<?>, Object> services = new HashMap<>();
text
public static <T> void registerService(Class<T> interfaceClass, T implementation) {
services.put(interfaceClass, implementation);
}
public static <T> T getService(Class<T> interfaceClass) {
return (T) services.get(interfaceClass);
}}
// Использование
ServiceLocator.registerService(Database.class, new PostgresDatabase());
Database db = ServiceLocator.getService(Database.class);
text
**Плюсы:**
- Уменьшает связанность кода.
- Позволяет легко заменять реализации сервисов.
**Минусы:**
- Скрывает зависимости, усложняя понимание кода.
- Может затруднить тестирование, если сервисы не заменяются на моки.
Альтернатива — Dependency Injection, которая явно передает зависимости, делая код более прозрачным.Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы