• aaaaaaaaargh@feddit.org
    link
    fedilink
    arrow-up
    2
    ·
    14 hours ago

    I think you’re confusing composition with aggregation. DI can’t be composition because the injected object is shared/borrowed, strong composition on the other hand requires the object to be owned. A composed child does not exist without its parent.

    • RedFrank24@piefed.social
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      10 hours ago

      Only if you’re going by the strict UML definition of composition, which doesn’t really apply here, since the industry has moved on a bit since UML was king.

      Either way, you can use DI to do composition in the strictest UML way, provided every single dependency is transient and creates a new instance every single time. Even then though, when most devs talk about composition, they aren’t referring to the strict UML definition.

      • aaaaaaaaargh@feddit.org
        link
        fedilink
        arrow-up
        1
        ·
        7 hours ago

        Yeah but I was talking about the opposite. I can clearly spot composition in many frontend framework such as react or flutter but e.g. spring DI is a different thing to me.