Решил что-ли все шаблоны разом выучить? Суть шаблона команда в том, что внутри может быть инкапсулировано любое поведение, а выполнено оно может быть унифицировано, каким угодно пользователем:
public interface Command
{
void execute();
}
public class FindUserCommand : Command
{
public void execute()
{
/// Здесь у нас код, который ищет пользователя
}
}
public class DeleteUserCommand : Command
{
public void execute()
{
/// А здес у нас код, который удаляет пользователя
}
}
FindUserCommand findUser = new FindUserCommand();
DeleteUserCommand deleteUser = new DeleteUserCommand();
/// Поскольку оба этих класса реализуют абстракцию Command
/// мы можем поместить их экземпляры например в коллекцию
HashSet<Command> commands = new HashSet<Command>();
commands.Add(findUser);
commands.Add(deleteUser);
/// И отдать затем эту коллекцию кому-нибудь, кто вообще
/// ничего не знает про FindUserCommand и DeleteUserCommand
/// а знает только про Command. И не смотря на это, этот кто-то
/// совершенно спокойно может выполнить инкапсулированное
/// внутри команд поведение.
foreach(Command command in commands)
{
command.execute();
}