2009-07-30 75 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