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:
-
Faktoriální metoda (Factory Method) — vytváří objekty prostřednictvím speciálních metod, skrývá detaily tvorby.
-
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í.
-
Použití rozhraní a abstrakcí — kód pracuje s rozhraními a konkrétní implementace jsou vytvářeny a předávány zvenčí.
-
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í.