一个简单的工作流设计笔记

        因项目需要一个类似于工作流的框架,而WWF好像是为2005的,而且时间较急,研究WWF没时间,况且此框架并不需要很复杂,所以上网看了一些资料就决定自己干.
    大体的框架如下:
   

    一个CWorkFlow对应多个CWorkStep, 一个CWorkStep对应一个CAction
将业务逻辑封装到CAction里,在数据库配置CWorkStep,然后用反射得到CAction,就可以执行CAction
里的逻辑了.
CWorkFlow就几个方法,实现了就差不多了.

/// <summary>
 /// IWorkFlow 的摘要说明。
 /// </summary>
 public interface IWorkFlow
 {
  
  /// <summary>
  /// 从数据库装载工作流
  /// </summary>
  void LoadWorkSteps();
  
  /// <summary>
  /// 为执行工作流作准备
  /// </summary>
  bool BeginExecute();

  /// <summary>
  /// 执行下一步骤
  /// </summary>
  void NextWorkStep();

  /// <summary>
  /// 执行工作流
  /// </summary>
  /// <returns></returns>
  void Execute();

  /// <summary>
  /// 工作流完成后的处理
  /// </summary>
  void EndExecute();

  /// <summary>
  /// 当工作流因某种原因暂停的时候能够继续下去
  /// </summary>
  void Continue();

  /// <summary>
  /// 将当前工作流作的一切还原,并重新开始
  /// </summary>
  void Restart();

  /// <summary>
  /// 将当前工作流作的一切还原
  /// </summary>
  void Revert();


  /// <summary>
  /// 暂停当前步骤
  /// </summary>
  void Pause();

 }
执行时大概就是这样

胡乱的搞了几下,居然还似模似样的,用起来还可以,哈哈写篇随笔留作纪念,以后研究研究WWF.

posted on 2006-02-15 17:56  随风  阅读(2007)  评论(2)    收藏  举报