Quali approcci usare per evitare la creazione diretta di un'istanza di funzione nel codice?
sobes.tech AI
Risposta dell'AI
Per evitare la creazione diretta di un'istanza di funzione (ad esempio, un oggetto o una classe) nel codice, si utilizzano i seguenti approcci:
-
Metodo Factory (Factory Method) — crea oggetti tramite metodi speciali, nascondendo i dettagli della creazione.
-
Iniezione delle dipendenze (Dependency Injection) — gli oggetti vengono passati alla classe dall'esterno, di solito tramite il costruttore o un setter, facilitando la sostituzione e i test.
-
Utilizzo di interfacce e astrazioni — il codice lavora con interfacce, e le implementazioni concrete vengono create e passate dall'esterno.
-
Espressioni lambda e interfacce funzionali — invece di creare nuove classi, si possono passare funzioni come parametri.
Esempio con iniezione delle dipendenze in Android (Kotlin):
interface ClickHandler {
fun onClick()
}
class MyActivity(private val clickHandler: ClickHandler) {
fun setup() {
// Utilizziamo il gestore passato invece di crearne uno nuovo
button.setOnClickListener { clickHandler.onClick() }
}
}
Questo approccio aumenta la flessibilità e la testabilità del codice, facilitando anche la manutenzione e l'estensione.