假设我有3个Widget自动化工厂:FactoryA,FactoryB和FactoryC。我将开发和维护一个.Net应用程序,以促进这些工厂的自动化(运动控制,机械定位等)。
此应用程序必须具有3个工厂的相同界面,但这些工厂的操作和物理布局差异很大。它们通常遵循相同的程序流程:步骤1,步骤2,步骤3,步骤4。但是每个工厂的这些步骤与它们的共同点有所不同。所以从逻辑上讲,我必须把事情分解成更多的步骤。我希望能够更新每个工厂,而不会有任何破坏任何风险。每个工厂也有不同的数据库要求,我必须编写不断变化的自定义记录。
那么我应该如何将核心功能放在高水平?
Currenly我有这样的事情:
FactoryA: Input->ProcessA.dll->Output
FactoryB: Input->ProcessB.dll->Output
FactoryC: ...
由于显而易见的原因,此方法无法很好地维护。但至少所有不同的步骤都是高度定制的。
我是否会更好地使用单个Process DLL,并在配置文件中存储实现所需输出所需的步骤?换句话说,如果每个工厂在同一个DLL中使用随机100个500步(方法,夸大这里),我应该如何存储每个工厂所需的序列?
这个问题非常开放。如果这个程序足够好,也许有一天它必须处理1000个工厂。我想添加功能以使其整洁,但不会冒基本操作破坏的风险。
你有什么想法?
答案 0 :(得分:1)
如果不了解更多,听起来更像是你想要一个建造者模式而不是工厂。
http://en.wikipedia.org/wiki/Builder_pattern
编辑:也许更好的答案是看一个IVC框架(例如,Spring.NET),看看是否会让你更容易构建你的对象(并使代码更易于维护)。 / p>
当然,假设使用框架是可以的。