读书人

请问,程序中工作流程的控制管理

发布时间: 2012-02-29 16:44:11 作者: rapoo

请教,程序中工作流程的控制管理
请教以下的情况,可以使用什么样的实现方法,主要是程序中任务流程的控制

1.整个任务含有几个单独的任务A,B,C,
每个单独的任务中可能会再分为几个阶段的子任务,如A分为A1,A2,A3

2.任务的执行受到用户设置的影响,这表现为某种设置下可能只执行A,另外一种设置循环执行A,B,另一种设置循环执行A,C
当然,每次运行的时候,用户的设置就已经是确定的了.

3.(头疼的地方)在执行某个子任务的时候如A2,根据当时的执行情况,在不同的用户设置下,有时需要结束当前任务,转到不同的任务中去
如转到A,或者转到B

4.未来可能会添加新的单独的任务,由此会带来任务流程新的变化

5.以上各个任务,或者任务阶段的代码段式分布在各处的,也就是说不会在同一个函数内


想用一个类来管理这些流程,如:
enum TaskType {e_A, e_B};
class TaskControl {
public:
void ChangeTask(int StateMark); //设定工作类型
TaskType GetTask(); //获得下一个阶段的工作类型
public:
TaskControl();
private:
static TaskType m_TaskType;
};

但总感觉这种方法比较笨拙,请教有没有好的方法或者建议?

[解决办法]
这个我感觉应该用继承来做,首先你的子任务应该继承父任务,如A1,A2,A3都继承于A,这样一来你执行A1的时候就知道了是触发了A类下面的子类。
Class A{
public:
void ChangeTask(int StateMark); //设定工作类型
TaskType GetTask(); //获得下一个阶段的工作类型
}
Class A1:A
{
public:
。。。
}
这样一来A1就拥有了A的所有方法,并且可以有自己的执行方法,你可以在A1的构造里面执行某项操作,这样就比较好控制了。

我以前做C#项目的时候,整个工程先定义一个类叫BaseObject,然后整个网站或者应用程序都从这里继承而来,项目的管理变得非常轻松

读书人网 >C++

热点推荐