Встречается на 8% собеседований по QA Manual

Что такое сервис локатор

Сервис локатор (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, которая явно передает зависимости, делая код более прозрачным.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы