我有一个现有的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