Чтобы избежать прямого создания экземпляра функции (например, объекта или класса) в коде, применяют следующие подходы:
Какие подходы использовать, чтобы избежать прямого создания экземпляра функции в коде?
Чтобы избежать прямого создания экземпляра функции (например, объекта или класса) в коде, применяют следующие подходы:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Чтобы избежать прямого создания экземпляра функции (например, объекта или класса) в коде, применяют следующие подходы:
- Фабричный метод (Factory Method) — создаёт объекты через специальные методы, скрывая детали создания.
- Внедрение зависимостей (Dependency Injection) — объекты передаются в класс извне, обычно через конструктор или сеттер, что упрощает замену и тестирование.
- Использование интерфейсов и абстракций — код работает с интерфейсами, а конкретные реализации создаются и передаются извне.
- Лямбда-выражения и функциональные интерфейсы — вместо создания новых классов можно передавать функции как параметры.
Пример с внедрением зависимостей в Android (Kotlin):
interface ClickHandler {
fun onClick()
}
class MyActivity(private val clickHandler: ClickHandler) {
fun setup() {
// Используем переданный обработчик, а не создаём новый
button.setOnClickListener { clickHandler.onClick() }
}
}
Такой подход повышает гибкость и тестируемость кода, а также облегчает поддержку и расширение.