我有一個現有的C#ASP.NET應用程序,帶有用戶界面和各種按鈕來啓動操作。這些動作對一個單例類進行同步方法調用,我將調用這個類ServiceLayer。該層還初始化數據模型。執行Quartz .NET作業來調用現有的類方法
我想安排UI中的某些操作在一天中的某些時間發生。我相信Quartz.NET提供了我需要的所有必要功能。我可以從每個Job類的Execute(IJobExecutionContext上下文)(即實現IJob接口的類)成功地調用單例類ServiceLayer上的方法。不過,我不喜歡使用這種方法的幾個原因:
- 難單元測試(例如,我要保證之前,我可以做任何事情的單身初始化)
- 如果大量的就業機會擴大規模被稱爲
- 與同時在單例類上調用多個方法相關的線程安全問題。
我的問題是什麼是最好的設計模式來處理這種情況,而不是直接調用單例方法?我相信我需要以某種方式使用JobDataMap,但我不知道如何。我應該看看生產者 - 消費者還是排隊方法?
這聽起來像沒有辦法做到這一點,而不使用依賴注入? – sdbol 2012-08-12 11:47:14
是否將服務層轉換爲類似Web服務的選項?那麼你只需要傳遞給它的URL。除此之外,我認爲DI是要走的路。 – jvilalta 2012-08-12 18:22:53