- Motivation
- To Links classes during configuration rather than
compilation.
- Summary
- This is an Extensibility Pattern implement Runtime loading and extension of application behaviors and features by loading some of application classes dynamically based on configuration supplied.
- It can also be used to implement application that runs on different run time where implementation is environment dependent.
- The Plug-in pattern extends the behavior of an existing class so that it can be used for a more specific purpose. It differs from using class inheritance, where behavior is altered or overwritten, or configuration, where behavior modification is limited to the capabilities of the defined configuration options.
- When to Use
- Use Plugin whenever you have behaviors that require different implementations based on runtime environment.
- Example
- Application Plug-In like Theams
- Syntax coloring.
- Related Patterns
- Separated Interface :is use to define the behaviors that will have different implementations based on
runtime environment.
- Factory (Plugin Factory) : can be used for special object creations process.
- IOC: Can be use for dynamic configuration handling.
- Related Technologies
- Enterprise Unity Library Application Block: is used to support IOC i.e. dynamic configuration handling.
- Microsoft Addin Framework (MAF) : Microsoft way to build plug-ins for real time applications
- Microsoft Extension Framework (MEF) : Framework to support dynamic object loading in declarative way.
- References
- Overview Tutorials
- http://www.iwriteiam.nl/PlugInPattern.html
- http://martinfowler.com/eaaCatalog/plugin.html
- Further References
- http://msdn.microsoft.com/en-us/library/ff648205.aspx
|
|