Design patterns 任务处理器设计模式
目前,我正在编写一段代码,它获取数据并使用处理器和版本进行处理。乙二醇Design patterns 任务处理器设计模式,design-patterns,factory,abstract,Design Patterns,Factory,Abstract,目前,我正在编写一段代码,它获取数据并使用处理器和版本进行处理。乙二醇 IProcessor aProcessor = new AProcessor(new AProcessorVersion1Translator()); aProcessor.GetResult("sample data"); 目前,我正在使用Factory方法根据类型获取处理器: IProcessor aProcessor = processorFactory.GetProcessor("A"); 每个处理器都有不同数量
IProcessor aProcessor = new AProcessor(new AProcessorVersion1Translator());
aProcessor.GetResult("sample data");
目前,我正在使用Factory方法根据类型获取处理器:
IProcessor aProcessor = processorFactory.GetProcessor("A");
每个处理器都有不同数量的版本转换器,这就是我的问题。我应该在哪里使用版本转换器工厂,是否应该将其传递给处理器工厂对象?或者我应该为每个处理器创建单独的工厂吗?我在做第二个解决方案。 假设每个处理器都有自己的版本转换器列表,并且每个处理器可能有不同的方法,我是按照以下方式进行的:
IProcessor: no implementation, just use for grouping purpose
ProcessorA: IProcessor
ProcessorB: IProcessor
ProcessorC: IProcessor
Then I was changing the code you wrote to:
var aProcessor = processorFactory.GetProcessor("A") as IProcessorA;
aProcessor.GetVersionTranslator([enum specific to type of Processor])
如果版本转换器不属于特定的处理器,那么第一个解决方案可能是错误的,然后它将需要一些验证/异常我正在执行第二个解决方案。 假设每个处理器都有自己的版本转换器列表,并且每个处理器可能有不同的方法,我是按照以下方式进行的:
IProcessor: no implementation, just use for grouping purpose
ProcessorA: IProcessor
ProcessorB: IProcessor
ProcessorC: IProcessor
Then I was changing the code you wrote to:
var aProcessor = processorFactory.GetProcessor("A") as IProcessorA;
aProcessor.GetVersionTranslator([enum specific to type of Processor])
如果版本转换器不属于特定处理器,则第一种解决方案可能是错误的,然后需要一些验证/异常