2009-07-30 70 views
0

假设我有3个Widget自动化工厂:FactoryA,FactoryB和FactoryC。我将开发和维护一个有助于这些工厂自动化(运动控制,机械定位等)的.Net应用程序。其中模块差别很大的模块化设计

该应用程序必须与3个工厂具有相同的接口,但这些工厂在操作和物理布局上有很大不同。他们通常遵循相同的程序流程:Step1,Step2,Step3,Step4。但是,每个工厂的这些步骤与它们的共同点不同。所以从逻辑上讲,我必须把事情分解成更多的步骤。我希望能够更新每个工厂而不会冒任何破坏风险。每个工厂也有不同的数据库要求,我必须编写不断变化的自定义记录。

那么我应该如何将核心功能置于高层?

Currenly我有这样的事情:

FactoryA: Input->ProcessA.dll->Output 
FactoryB: Input->ProcessB.dll->Output 
FactoryC: ... 

这种方法并不明显的原因保持良好。但至少所有不同的步骤都是高度定制的。

我会更好的有一个单一的进程DLL,并存储在配置文件中所需的步骤来实现所需的输出?换句话说,如果每个Factory使用同一个DLL中的随机100个500步(方法,这里夸大),我应该如何存储每个工厂所需的序列?

这个问题非常开放。如果这个计划足够好,也许会有1000个工厂,它有一天必须处理。我想添加功能,使其整洁,但不能冒基本操作中断的风险。

你有什么想法?

回答

1

没有真正知道更多,这听起来更像是你想要一个建造者模式比工厂。

http://en.wikipedia.org/wiki/Builder_pattern

编辑:也许是一个更好的答案是采取看IVC框架之一(例如,Spring.NET),看看是否会让你更容易来构建你的对象(使代码更易维护)。

当然,假设可以使用框架。

+0

这让我(一个相对较新的程序员)可以构建一些东西。谢谢! – bufferz 2009-07-31 03:35:30