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.