现在应该讲主控制类了,为了不把系统弄得太复杂,所以就用一个类作为主要控制类(服务类),作为前端、后端、业务逻辑的控制类。

WorkflowService类的类图如下:

.net之工作流工程展示及代码分享(四)主控制类

该类的构造函数:

1         public WorkflowService(IWorkflowDB workflowDb, IWorkflowMethods workflowMethods)
2         {
3             _iWorkflowDb = workflowDb;
4             _iWorkflowMethods = workflowMethods;
5         }

通过简单工厂方法返回类的实例:

 1         /// <summary>
 2         /// 程序主调用方法
 3         /// </summary>
 4         /// <returns></returns>
 5         public static WorkflowService GetWorkflowService()
 6         {
 7             IWorkflowDB iWorkflowDb;
 8             try
 9             {
10             string dbSavingProvider = WorkFlowUtility.GetConfiguration("DataBaseProvider").ToLower();
11                 switch (dbSavingProvider)
12                 {
13                     case "oracle":
14                         iWorkflowDb = new OracleWorkFlowDBUtility();
15                         break;
16                     case "sqlserver":
17                         //iWorkflowDb = new SqlServerWorkFlowDBUtility();
18                         //break;
19                     default:
20                         iWorkflowDb = (IWorkflowDB) Assembly.Load(dbSavingProvider).CreateInstance(dbSavingProvider);
21                         break;
22                 }
23 
24             }
25             catch (Exception)
26             {
27                 throw new WorkFlowConfigurationNotImplementException("数据库配置失败!");
28             }
29 
30                 IWorkflowMethods iWorkflowMethods;
31             try
32             {
33                 string dbInterface = WorkFlowUtility.GetConfiguration("WorkflowConfigurationNameSpace");
34                 iWorkflowMethods = (IWorkflowMethods)Assembly.Load(dbInterface).CreateInstance(dbInterface + ".WorkflowConfiguration");
35             }
36             catch (Exception ex)
37             {
38                 throw new WorkFlowConfigurationNotImplementException("应用程序实例配置失败!");
39             }
40 
41             return new WorkflowService(iWorkflowDb, iWorkflowMethods);
42         }
View Code

相关文章: