Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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() }
    }
}

Този подход увеличава гъвкавостта и тестируемостта на кода, както и улеснява поддръжката и разширяването.