Я создал Async для выполнения задач, который выполняет задачи по внешнему запросу.
Каждая задача содержит функцию void run(),
, поэтому любой программист, желающий добавить задачу в систему, должен наследовать от BaseTask
.
interface ITask{
void run();
}
abstract BaseTask : ITask{
//force "run()" to set Result
public ResultContainer Result {set; get;}
void run();
}
class SomeTask : BaseTask {
void run(){
////run the operation here, in the end, set the result.
//force the programmer to set the Result;
this.Result = new ResultContainer("task ok");
}
}
По внутренним причинам run()
должен быть недействительным.
Можно ли заставить программиста, который хочет добавить задачу, вызвать Result
в BaseTask
и установить ее значение?
Как вы думаете, это плохая практика?
Спасибо