jargon

Design patterns·Wiring: injection, containers and lifetimes

you cannot create the object without giving it what it needs, so there is no moment where it exists half-wired.

Constructor injection

Also calledconstructor-based injection

Passing dependencies as constructor arguments, making them required and making the object valid from the instant it exists. It is the default choice for almost every case: the parameter list is an honest declaration of what the class needs, and a list that grows uncomfortable is a signal the class does too much. Its one real limitation is circular dependencies, which it makes impossible to construct — usually a design message rather than a problem to work around.

Commonly confused with