Учитывая, что System.Windows.Input.ICommand как 2 основных метода:
interface ICommand {
void Execute(object parameters);
bool CanExecute(object parameters);
...
}
Я ожидаю, что CanExecute (...) вызывается в поддерживаемых командами фреймах до вызова функции Execute (...).
Внутри моей реализации команды, однако, есть ли причина добавить вызов CanExecute (...) в мою реализацию Execute (...)?
например:.
public void Execute(object parameters){
if(!CanExecute(parameters)) throw new ApplicationException("...");
/** Execute implementation **/
}
Это становится актуальным в моем тестировании, так как я могу издеваться над некоторыми интерфейсами для поддержки CanExecute и должен выполнять те же макеты при тестировании Execute.
Любые дизайнерские мысли по этому поводу?