Sobes.tech
Junior — Middle

Ce abordări să folosiți pentru a evita crearea directă a unei instanțe de funcție în cod?

sobes.tech AI

Răspuns de la AI

Pentru a evita crearea directă a unei instanțe de funcție (de exemplu, un obiect sau o clasă) în cod, se aplică următoarele abordări:

  1. Metoda Fabrica (Factory Method) — creează obiecte prin metode speciale, ascunzând detaliile creării.

  2. Injectarea dependențelor (Dependency Injection) — obiectele sunt transmise în clasă din exterior, de obicei prin constructor sau setter, ceea ce facilitează înlocuirea și testarea.

  3. Utilizarea interfețelor și abstracțiilor — codul lucrează cu interfețe, iar implementările concrete sunt create și transmise din exterior.

  4. Expresii lambda și interfețe funcționale — în loc să creezi noi clase, poți transmite funcții ca parametri.

Exemplu cu injectarea dependențelor în Android (Kotlin):

interface ClickHandler {
    fun onClick()
}

class MyActivity(private val clickHandler: ClickHandler) {
    fun setup() {
        // Folosim handler-ul transmis în loc să creăm unul nou
        button.setOnClickListener { clickHandler.onClick() }
    }
}

Această abordare crește flexibilitatea și testabilitatea codului, precum și facilitează întreținerea și extinderea.