¿Qué enfoques usar para evitar la creación directa de una instancia de función en el código?
sobes.tech AI
Respuesta de la IA
Чтобы избежать прямого создания экземпляра функции (например, объекта или класса) в коде, применяют следующие подходы:
-
Фабричный метод (Factory Method) — создаёт объекты через специальные методы, скрывая детали создания.
-
Внедрение зависимостей (Dependency Injection) — объекты передаются в класс извне, обычно через конструктор или сеттер, что упрощает замену и тестирование.
-
Использование интерфейсов и абстракций — код работает с интерфейсами, а конкретные реализации создаются и передаются извне.
-
Лямбда-выражения и функциональные интерфейсы — вместо создания новых классов можно передавать функции как параметры.
Пример с внедрением зависимостей в Android (Kotlin):
interface ClickHandler {
fun onClick()
}
class MyActivity(private val clickHandler: ClickHandler) {
fun setup() {
// Используем переданный обработчик, а не создаём новый
button.setOnClickListener { clickHandler.onClick() }
}
}
Такой подход повышает гибкость и тестируемость кода, а также облегчает поддержку и расширение.