Вопрос проверяет знание практических приёмов ослабления связности и улучшения тестируемости.
Короткий ответ
Основной способ — отказаться от прямого использования shared и внедрять зависимость извне. Для этого используют протоколы и Dependency Injection. Singleton можно оставить как реализацию по умолчанию, но не использовать напрямую. Это позволяет подменять реализацию в тестах. В результате код становится гибче и чище.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.