Sobes.tech
Назад к вопросам
Junior — Middle
70

Какие подходы использовать, чтобы избежать прямого создания экземпляра функции в коде?

Компании, где спрашивали
ИннотехИннотех

Ответ от нейросети

sobes.tech AI

Чтобы избежать прямого создания экземпляра функции (например, объекта или класса) в коде, применяют следующие подходы:

  1. Фабричный метод (Factory Method) — создаёт объекты через специальные методы, скрывая детали создания.

  2. Внедрение зависимостей (Dependency Injection) — объекты передаются в класс извне, обычно через конструктор или сеттер, что упрощает замену и тестирование.

  3. Использование интерфейсов и абстракций — код работает с интерфейсами, а конкретные реализации создаются и передаются извне.

  4. Лямбда-выражения и функциональные интерфейсы — вместо создания новых классов можно передавать функции как параметры.

Пример с внедрением зависимостей в Android (Kotlin):

interface ClickHandler {
    fun onClick()
}

class MyActivity(private val clickHandler: ClickHandler) {
    fun setup() {
        // Используем переданный обработчик, а не создаём новый
        button.setOnClickListener { clickHandler.onClick() }
    }
}

Такой подход повышает гибкость и тестируемость кода, а также облегчает поддержку и расширение.