What is a plugin system ? (ie extension system)


An extensible application is one that you can extend without modifying its original code base.

By designing an extensible application, you provide a way to upgrade or enhance specific parts of a product without changing the core code.

See also:

It's what characterized a famework (versus a library)


An extensible application implements a mechanism of extensions with:

  • extension points,
  • plug-ins
  • or modules

that allow to extend it without modifying its base code.

A extension point declares a contract:

that extensions must conform to.

Plug-ins that want to connect to that extension point must implement that contract in their extension.

By adding a the plugin code implementing this extension points new functionality are added.

Powered by ComboStrap