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