Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pourquoi vous devriez arrêter d'utiliser les field injection #DevoxxFR

Pourquoi vous devriez arrêter d'utiliser les field injection #DevoxxFR

Durant cette présentation, nous parlerons inversion de contrôle (IOC) et injection de dépendance (DI).

Nous nous intéresserons aux défauts induits par l'utilisation des injections par champ (field injection), alors même qu'elles sont encore très populaires aujourd'hui (notamment grâce à Spring). Nous verrons quelles sont les alternatives possibles, et les avantages consécutifs à leur utilisation.

-- Devoxx France 2018 --

Erwan Deruelle

April 20, 2018
Tweet

More Decks by Erwan Deruelle

Other Decks in Programming

Transcript

  1. #DevoxxFR #StopFieldInjection @d3rwan Field Injection + Short and concise -

    Coupling with DI Container - Inconsistent state possible - Mutable/hidden dependencies - Circular dependencies - Tends to hide code design red flags 9
  2. #DevoxxFR #StopFieldInjection @d3rwan Setter Injection 11 + Less coupling with

    DI Container + Explicit dependencies + Bad design code indicator
  3. #DevoxxFR #StopFieldInjection @d3rwan Setter Injection + Less coupling with DI

    Container + Explicit dependencies + Bad design code indicator - The most verbose, more boilerplate code - Break encapsulation, inconsistent state possible - Mutable dependencies - Circular dependencies 12
  4. #DevoxxFR #StopFieldInjection @d3rwan Constructor Injection 14 + No more coupling

    with DI Container + Explicit dependencies + Bad design code indicator + Immutable dependencies + State always valid + No circular dependencies + Compiler is your friend