that allows to plug functionality using PluggableModules
- Winamp - Sound, Visual, and Skin plugins
- Photoshop - Filters, Importers/Exporters
is sort of
like the DataBusPattern
(same thing), except that it usually has a much more constrained channel of information, and it is rare that the plug-ins communicate with each other. The central functionality is generally much more powerful than the outer plug-ins. The plug-ins fit very specific roles, whereas in the DataBusPattern
, the components do pretty much anything.
Use a PluggableArchitecture
when you want a system to work in straightforward and predictable ways, with very specific points of variation.
Use a ComponentBus
when you want a system to be pretty much universally extendable, and made up of the connections of lots of little pieces.
When you use a PluggableArchitecture
, you get to pinch the points at which change occurs.
When you use a ComponentBus
architecture, pretty much everything can be changed atomically, but you have to keep more inter-connections in your head at a time.
I believe that we will need significant advances in 2D GraphicalUserInterface
technology, before we can appropriately understand ComponentBus
architectures. In the near term future, PluggableArchitecture
seems to be almost always the better way to go, if you need extensability. -- LionKimbro