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:
-
Metoda Fabrica (Factory Method) — creează obiecte prin metode speciale, ascunzând detaliile creării.
-
Injectarea dependențelor (Dependency Injection) — obiectele sunt transmise în clasă din exterior, de obicei prin constructor sau setter, ceea ce facilitează înlocuirea și testarea.
-
Utilizarea interfețelor și abstracțiilor — codul lucrează cu interfețe, iar implementările concrete sunt create și transmise din exterior.
-
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.