Identifying plugins

Each plugin can be given a String name, and every plugin is of a certain type (i.e. class). This is how we identify them, but no uniqueness is enforced.

Any object which implements the general IPlugin interface is a plugin. However, to be useful it almost certainly also needs to implement an interface for a specific plugin, and this is how its users will recognise it.

For example, the skeleton application's LifeCyclePlugin implements not only IPlugin but also IManagerLifeCycle. Implementing IPlugin means it can be plugged in, initialised, and shutdown. But implementing IManagerLifeCycle means it will be called on for the specific purpose of reacting to manager life cycle events.

Nik Silver 2002-03-09