WEB开发网
开发学院软件开发Java 演化架构和紧急设计: 使用 Groovy 构建 DSL 阅读

演化架构和紧急设计: 使用 Groovy 构建 DSL

 2010-10-09 08:12:32 来源:WEB开发网   
核心提示: 清单 1. 测试演示 camelize()方法 classTestStringCategoryextendsGroovyTestCase{defexpected=["event_map":"eventMap","name":"

清单 1. 测试演示 camelize()方法

class TestStringCategory extends GroovyTestCase { 
  def expected = ["event_map" : "eventMap", 
      "name" : "name", "test_date" : "testDate", 
      "test_string_with_lots_of_breaks" : "testStringWithLotsOfBreaks", 
      "String_that_has_init_cap" : "stringThatHasInitCap" ] 
 
  void test_Camelize() { 
    use (StringCategory) { 
      expected.each { key, value -> 
        assertEquals value, key.camelize() 
      } 
    } 
  } 
} 

在 清单 1 中,我使用原始的和转换后的案例创建了一个 expected 散列值,然后根据映射的迭代包装 StringCategory,希望将每个关键词驼峰化(camelized)。注意在 use 块中,您不需要特别做什么就可以调用类中的新方法。

StringCategory 的代码在清单 2 中显示:

清单 2. StringCategory 类

class StringCategory { 
 
 static String camelize(String self) { 
  def newName = self.split("_").collect() { 
   it.substring(0, 1).toUpperCase() + it.substring(1, it.length()) 
  }.join() 
  newName.substring(0, 1).toLowerCase() + newName.substring(1, newName.length())    
 } 
} 

categories 是一个常规类,包含静态方法。静态方法必须要有一个参数,这是您将要增加的类型。在 清单 2 中,我声明了一个单独的静态方法,接收 String 参数(通常称为 self,但是您可以随意为其命名),代表我向其中添加方法的类。方法体包含 Groovy 代码,通过下划线将字符串分成带分隔符的几块(这就是 split("_") 方法所做的),然后将字符串收集到一起,在合适的地方使用大写字母将它们拼接起来。最后一行确保返回的第一个字符是小写的。

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

Tags:演化 架构 紧急

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