我一直在使用C#4.0创建一个代码库来处理N个文件,在需要的流程开始时,现在需求已经改变,我需要处理一组文件,所以我们可以说我们有"的过程"每个进程都有自己的文件组:
I.E。:
Process1 {4 files}
Process2 {10个文件}
Process3 {23 files}
...
我已经为初始需求实现了抽象工厂设计模式,所以我的工厂收到了文件的名称,然后我创建了处理该特定文件的类的具体实例,现在我需要调整模式首先创建一个进程的实例,并使用该实例创建特定对象的实例来处理每个文件,我试图得到这样的结果:
var processInstance = processFactory.GetInstance(processId);
processInstance.Method1(params);
var fileProcessor = processInstance.GetFileProcessorInstance(fileId);
fileProcessor.Method1(params);
fileProcessor.Method2(params);
processInstance.Method2(params);
感谢您的帮助
答案 0 :(得分:0)
您可以保留两个工厂并使用协调员/协调员来控制两者之间的互动。这基本上就是您编写的代码样本。
我不会和另一家工厂组建工厂。对我来说似乎不对。
如果你让你的协调员/协调者依赖抽象工厂'接口,一切都很好,可测试,松散耦合,合理坚固。