Sobes.tech
Junior — Middle

Jaké přístupy použít k zabránění přímému vytváření instance funkce v kódu?

sobes.tech AI

Odpověď od AI

Abyste se vyhnuli přímému vytváření instance funkce (například objektu nebo třídy) v kódu, používají se následující přístupy:

  1. Faktoriální metoda (Factory Method) — vytváří objekty prostřednictvím speciálních metod, skrývá detaily tvorby.

  2. Vstřikování závislostí (Dependency Injection) — objekty jsou předávány do třídy zvenčí, obvykle přes konstruktor nebo setter, což usnadňuje výměnu a testování.

  3. Použití rozhraní a abstrakcí — kód pracuje s rozhraními a konkrétní implementace jsou vytvářeny a předávány zvenčí.

  4. Lambda výrazy a funkční rozhraní — místo vytváření nových tříd lze předávat funkce jako parametry.

Příklad s injekcí závislostí v Androidu (Kotlin):

interface ClickHandler {
    fun onClick()
}

class MyActivity(private val clickHandler: ClickHandler) {
    fun setup() {
        // Používáme předaný obslužník místo vytváření nového
        button.setOnClickListener { clickHandler.onClick() }
    }
}

Tento přístup zvyšuje flexibilitu a testovatelnost kódu, a také usnadňuje údržbu a rozšiřování.