Glossary

 

Here are brief definitions of selected terms, patterns, and other concepts discussed in this book. Each definition includes a reference to the chapter where the term is discussed in greater detail.

Abstraction

A unifying term that encompasses both interfaces and (abstract) base classes. See chapter 2.

Ambient Context

A DI pattern that makes a strongly typed DEPENDENCY implicitly available via a context which is always present. See chapter 4.

Aspect-Oriented Programming (AOP)

An approach to software that addresses Separation of Concerns by composing CROSS-CUTTING CONCERNS in a declarative manner. See chapter 9.

Auto-wiring

The ability to automatically compose an object graph once mappings from ABSTRACTIONS to concrete types are known. See chapter 3.

Auto-registration

Use of conventions to configure a DI CONTAINER instead of using explicit registrations of each component. See chapter 3.

Bastard Injection

A DI anti-pattern. See chapter 5.

Code as Configuration

Use of imperative code to configure a module or application instead of using an external configuration mechanism, such as a configuration file. See chapter 3.

Composer

A unifying term that encompasses any object or method that composes DEPENDENCIES. See chapter 8.

Composition Root

A central place in an application where the entire application is composed from its constituent modules. See chapter 3.

Constrained Construction

A DI anti-pattern. See chapter 5.

Constructor Injection