我的应用程序中有一个长时间运行的任务。任务可以启动、暂停、恢复和取消。我正在努力寻找最适合这些操作的界面。
有两个似乎很清楚:
Pause
和Cancel
。这就留下了启动和恢复操作。我可以同时包括 Start
和 Resume
。这样做的缺点是,要么要求 API 使用者在开始/恢复操作之前检查状态以调用正确的方法,要么使方法彼此成为别名。我认为一种可能性是使用“开始”或“恢复”,但我不知道哪一个最合适。
有人在 .NET Framework 中有此类行为的示例吗?只要有可用的既定模式,我更喜欢遵循它们。
编辑:到目前为止我发现的最相似的案例来自工作流库。 WorkflowInstance
有方法:中止
public class Task
{
public TaskController Start()
{
TaskController controller = new TaskController(this);
... // start the task
return controller;
}
}
public class TaskController
{
private Task task;
internal TaskController(Task task)
{
this.task = task;
}
public void Pause() { ... }
public void Resume() { ... }
public void Cancel() { ... }
}
实际上,这取决于您正在做什么,这是否合适(例如,可以想象,这种方法将允许您生成并行运行的任务的多个实例;我不知道是否合适)。
Start
和
Resume
是非常标准的术语。如果您只想包含其中一个,我会选择开始。如果您正在寻找一个可以同时满足这两个目的的更合适的术语,我会选择像
Run
这样的术语(因为 Start
和 Resume
都暗示着有关任务状态的信息......尤其是Resume
) ...并且 IMO Run
传达的信息略少于 Start
)。