WEB开发网
开发学院软件开发C语言 实用模式:内部域特定语言 阅读

实用模式:内部域特定语言

 2010-09-30 22:42:30 来源:WEB开发网   
核心提示: 首先,让我们看一个简单的示例,实用模式:内部域特定语言(2),我当前的项目中涉及适用于重复出现事件和计划事件的可配置规则,最初,您可能将这两段代码理解为“2 小时”和“100 天”,但您需要仔细想想,我们曾尝试创建小型内部 DSL 来配置这些事件(

首先,让我们看一个简单的示例。我当前的项目中涉及适用于重复出现事件和计划事件的可配置规则。最初,我们曾尝试创建小型内部 DSL 来配置这些事件(现在,我们正转向使用外部 DSL 方法)。这些规则主要依赖 TimeSpan 值来确定事件应该重复发生的频率、应该开始的时间和应该截止的时间。这可能类似于以下代码段:

x.Schedule(schedule => 
{ 
  // These two properties are TimeSpan objects 
  schedule.RepeatEvery = new TimeSpan(2, 0, 0); 
  schedule.ExpiresIn = new TimeSpan(100, 0, 0, 0); 
});

请特别注意“new TimeSpan(2, 0, 0)”和“new TimeSpan(100, 0, 0, 0)”。作为经验丰富的 .NET Framework 开发人员,您可能将这两段代码理解为“2 小时”和“100 天”,但您需要仔细想想,这样对吗?还是让我们更好地理解一下 TimeSpan 的定义吧:

x.Schedule(schedule => 
{ 
  // These two properties are TimeSpan objects 
  schedule.RepeatEvery = 2.Hours(); 
  schedule.ExpiresIn = 100.Days(); 
});

在上述示例中,我只对 integer 对象应用了一些可返回 TimeSpan 对象的扩展方法:

public static class DateTimeExtensions 
{ 
  public static TimeSpan Days(this int number) 
  { 
    return new TimeSpan(number, 0, 0, 0); 
  } 
 
  public static TimeSpan Seconds(this int number) 
  { 
    return new TimeSpan(0, 0, number); 
  } 
}

上一页  1 2 3 4 5 6 7  下一页

Tags:实用 模式 内部

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接