graph LR
injector_Module["injector.Module"]
injector_Binder["injector.Binder"]
injector_Binding["injector.Binding"]
injector_Provider["injector.Provider"]
injector_Module -- "configures" --> injector_Binder
injector_Binder -- "creates" --> injector_Binding
injector_Binder -- "instantiates" --> injector_Provider
The Binding & Module Configuration subsystem is the foundational layer where users define and register how dependencies are mapped to their concrete implementations within the injector framework. It provides the necessary interfaces and mechanisms for declaring these mappings and preparing them for the dependency resolution process.
Serves as the primary configuration unit for users. It provides a structured way to declare how dependencies are mapped to their concrete implementations or providers. Users extend Module and implement its configure method to define a set of related dependency bindings.
Related Classes/Methods:
Acts as the central registry and orchestrator for dependency bindings. It is responsible for receiving, storing, and managing the lifecycle of binding declarations, translating them into concrete mapping rules that the injector can use for dependency resolution.
Related Classes/Methods:
Represents the actual mapping rules or immutable representations of the dependency mappings. It encapsulates the "what" (the dependency) and the "how" (the provider or concrete implementation) of a single dependency relationship.
Related Classes/Methods:
Encapsulates the logic for creating bound instances. This can be a factory function, a class type, or a pre-existing instance, providing a unified interface for the Injector to obtain dependency instances.
Related Classes/Methods: