Sobes.tech
Junior — Middle

Quelles approches utiliser pour éviter la création directe d'une instance de fonction dans le code?

sobes.tech IA

Réponse de l'IA

Pour éviter la création directe d'une instance de fonction (par exemple, un objet ou une classe) dans le code, on utilise les approches suivantes :

  1. Méthode de fabrique (Factory Method) — crée des objets via des méthodes spéciales, en cachant les détails de la création.

  2. Injection de dépendances (Dependency Injection) — les objets sont passés à la classe depuis l'extérieur, généralement via le constructeur ou un setter, ce qui facilite le remplacement et les tests.

  3. Utilisation d'interfaces et d'abstractions — le code fonctionne avec des interfaces, et les implémentations concrètes sont créées et passées depuis l'extérieur.

  4. Expressions lambda et interfaces fonctionnelles — au lieu de créer de nouvelles classes, on peut passer des fonctions en tant que paramètres.

Exemple avec injection de dépendances en Android (Kotlin) :

interface ClickHandler {
    fun onClick()
}

class MyActivity(private val clickHandler: ClickHandler) {
    fun setup() {
        // Utilise le gestionnaire passé plutôt que d'en créer un nouveau
        button.setOnClickListener { clickHandler.onClick() }
    }
}

Cette approche augmente la flexibilité et la testabilité du code, tout en facilitant la maintenance et l'extension.