修改两级工厂创建的抽象工厂设计模式

时间:2015-09-02 15:11:02

标签: c# design-patterns

我一直在使用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);

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以保留两个工厂并使用协调员/协调员来控制两者之间的互动。这基本上就是您编写的代码样本。

我不会和另一家工厂组建工厂。对我来说似乎不对。

如果你让你的协调员/协调者依赖抽象工厂'接口,一切都很好,可测试,松散耦合,合理坚固。