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; } } }