Dependency injection is a software architecture term that refers to the concept of a framework or runtime “injecting” an external dependency into another piece of software. Handling this process is a core requirement for an extensibility framework.
Structural matching, also sometimes referred to as duck typing, is a style of feature discovery and typing in which a host determines the type of an object based on the properties and methods it exposes as opposed to its actual type in the object-oriented sense.
Finally, naming and activation is the “last-mile” feature that puts all the pieces together and enables an application to load and run the plug-in code predictably.
When all three of these mechanisms are in place, you have a ...