The classes in this package implement a command dispatch mechanism at a higher level of abstraction than the standard AWT event loop.

Dispatching {@link de.qfs.lib.command.Command Commands} through the {@link de.qfs.lib.command.CommandDistributor CommandDistributor} is useful because it enables exception handling through a single point of entry. It also decouples GUI components and the actions they cause, providing communication across library boundaries if necessary.

There are two very different kinds of Command concepts. In one concept the Command is viewed as being solely responsible for its own execution. The creator of the Command has to provide it with all necessary information, the rest must be available through some static interface. This kind of Command is created through implementing the {@link de.qfs.lib.command.Invokable Invokable} interface.

The other type of Command represents an event or a container of information, where the CommandDistributor acts as a mediator between creators and handlers of Commands. In that way, creators and handlers of Commands can be developed independently, they only have to agree upon a format for the Commands being used.