实现独立调度器类我不得不来如下接口:
public interface ISchedulableContext<in T1, out T2> where T1: T2, ISchedulerConfigProvider
{
void LogMessage(LoggingEventLevel level, string eventName, string Message);
void Process(ISchedulerConfigProvider schedulerConfig);
IEnumerable<T2> GetSchedulerConfig();
void SaveUpdatedConfig(IEnumerable<T1> schedulers);
}
它可以工作,但确实需要明确和冗余地指定和传递类型 ISchedulableContext<ISchedulerConfigProvider,ISchedulerConfigProvider>
public class SchedulableCore: ISchedulableContext<ISchedulerConfigProvider,ISchedulerConfigProvider>
{
...
}
public class TaskScheduler
{
private ISchedulableContext<ISchedulerConfigProvider, ISchedulerConfigProvider> core;
public TaskScheduler(ISchedulableContext<ISchedulerConfigProvider, ISchedulerConfigProvider> core)
{
this.core = core;
}
}
我想简化这种实现并改用简单的接口实现:
public class SchedulableCore: ISchedulableContext
{
/*...*/
public IEnumerable<ISchedulerConfigProvider> GetSchedulerConfig()
{
return (IEnumerable<ISchedulerConfigProvider>)/*...*/;
}
public void SaveUpdatedConfig(IEnumerable<ISchedulerConfigProvider> schedulers)
{ /*...*/ }
}
是否可以简化?