Pluggable Component: A Pattern for Interactive System Configuration

In many applications, especially in frameworks, it is necessary to exchange components. The standard approach to achieve this is to use an abstract class as the interface against which the application is programmed, and several concrete subclasses to supply implementations for the abstract interface class. There are several GOF patterns that deal with this kind of component exchange (see Related Patterns section). There, the classes must be available at compile time and they are instantiated according to program state or user selection. However, there are situations when this degree of flexibility is not enough.

[1]  Wolfgang Pree,et al.  Design Patterns for Object-Oriented Software Development , 1994, Proceedings of the (19th) International Conference on Software Engineering.

[2]  Klaus Marquardt,et al.  Patterns for Plug-Ins , 1999, EuroPLoP.