I know I could look it up in Wikipedia, but posing the question here may probably generate more amusement.

WTF is a “dependency injection”?

MA


On Sat, 6 Feb 2021 at 22:18, Scott McKay <swmckay@gmail.com> wrote:

Nobody in the list community ever invented a fancy pants term like “dependency injection”
because it’s so obvious how to do this that nobody thought to give it a name.

—Scott

> On Feb 6, 2021, at 4:07 PM, Manfred Bergmann <manfred.bergmann@me.com> wrote:
>
> 
>
>> Am 06.02.2021 um 21:44 schrieb Luís Oliveira <luismbo@gmail.com>:
>>
>>> On Sat, 6 Feb 2021 at 20:07, Rudi Araújo <rudi.araujo@gmail.com> wrote:
>>> Class::newInstance() doesn't have any parameters (also, it's deprecated: better to use getConstructor() or getDeclaredConstructor() and call newInstance() on it).
>>
>> I guess this bit about getConstructor() explains why it'd be more
>> convenient to use a Factory, or the Factory method pattern, or some
>> dependency injection framework.
>>
>
> Yeah. Could be.
> But this constructor thingy could be hidden in a function similar as you would create a constructor function make-foo in Common Lisp.
> The reflection stuff is not considered a good practice in certain types of applications.
>
> Dependency injection is about something else IMO. Well, Abstract Factory is about it, too, inversion of control.
> It allows you to create something without having to know the concrete type and without having to have a source dependency on it.
> In Common Lisp this could be solved easily by just separating a protocol from the implementation, maybe in separate packages.
>
>
>
> Manfred

--
Marco Antoniotti, Associate Professor         tel. +39 - 02 64 48 79 01
DISCo, Università Milano Bicocca U14 2043 http://bimib.disco.unimib.it
Viale Sarca 336
I-20126 Milan (MI) ITALY