项目类型有5种:Category_A,Category_B……Category_E
过程一共有10多种:Process_A,Process_B,Process_C……
每种类型的项目拥有不固定数目的过程。(比如说:Category_A有Process_A,Process_B。Category_B有
Process_B,Process_C,Process_D。)
每个过程中都有确认逻辑。
确认逻辑:有的项目类型可能只允许固定的部门可以提交确认。而且确认时Post的内容也一样,有时可能只
需要button点击一下就OK,有时可能需要选择几个checkbox后确认,有时还可能需要写textbox,选其他的
东西后确认。该过程全部完成时进入到此项目的下个过程(数据库中有一张每种项目类型的Step和Process
对应表)。
场景就是上面这些。
——————————
程序结构:UI,BLL,IDAL,具体DAL(sqlserver,oracle……)。
BLL层通过IDAL反射具体的DAL。
我比较困惑的是不知道如何设计才比较好。
比如说以后老板说要改一下Category_A类型项目的Process_B过程中的一个确认逻辑。
或者其他可能的修改。。。。。
我一开始想用事件和委托来保证每个项目完成的时候自动进入该项目的下一个过程,但是有些过程中的确认
是并行的,一并行我就不知道怎么搞了。
请大侠赐教一下如何设计下面的两层呢?
是否考虑用一下workflow啊,一个Category就是一个flow,其中的step就是各个Process,一个workflow有多少个process配置在XML文件中,或者保存在数据库中,用反射来调用!
再加上适当的抽象,如楼上的朋友说的
把Process都抽像成统一的接口IProcess,Step的确认逻辑也可以抽象出来。Category只和IProcess直接关连,具休的Process对象类由DAL从数据库读取的时候根据ProcessID来映射。