有若干个公司 甲 乙 丙 丁 等,每个公司都有一个接口来完成一个工作流程,
这些流程的主要功能是
1、A->B->C->D->E
2、A->B->T
第二个流程其实是第一个分出来的,也就是说第一个流程执行到B时要判断,走C还是走T
但是每个公司实现这功能时的流程都有些不一样
比如 甲公司: 1、A->a1->a2->B-b1->C->D->d1->E
2、A->a1->a2->B->T
乙公司: 1、A->a1->B->C->D->d1->d2->E
2、A->a1->B->T
丙公司: 1、A->B->b1->b2->C->c1->D->d1->E
2、A->B->T
每个公司的接口流程中所需要的参数不同,参数的数量不同,返回的结果和数量也不同(返回值中,除了后面功能所必须依赖的参数外,其余的参数大多数就是要保存到数据库中的,只是参数名可能不同),并且流程中后面功能所需的参数可能会依赖前面所返回的结果 比如 甲公司中 功能 B 可能需要 a1 中返回的参数,E可能也需要 C 中返回的结果
现在我想做一个统一的接口让别的人调用接口的时候只需要给一个标识码用来确定走哪个公司的流程,而且调用接口时的参数和返回的结果和个数也统一
我现在是用抽象工厂来做的,但是发现有很多问题
建立流程中核心功能的接口 IA IB IC ID IE IFactory,然后这些公司的工厂继承这些接口,通过反射调用。但是在走流程的时候由于每个公司的接口所需要的参数和返回结果又不一样。而且有时候在一个接口中要执行好几个子流程
比如 甲公司的类 ObjA继承IA 那甲公司的流程 a1 和 a2 都要在 ObjA中 执行,所以要在ObjA中判断 是执行 a1 还是 a2 还是 A。a1 和 a2 中还要接收参数,还要返回参数 。所以感觉很乱.觉得这样不合理.. 求大神给支几招
分全给了