namespace Chernobyl.DesignPatterns.Command
{
///
/// An interface for working with types that use the command design pattern
/// (see http://en.wikipedia.org/wiki/Command_pattern).
///
public interface ICommand
{
///
/// Performs the command in question.
///
void Execute();
///
/// Causes the command to be reverted if it was previously executed. This
/// method only works if is equal to true.
///
/// Thrown if this
/// does not support undo (i.e.,
/// is false).
void Undo();
///
/// True if this can be reverted after a call to
/// , false if otherwise.
///
bool CanUndo { get; }
}
}