时髦的单身人士模式

时间:2011-09-30 15:18:12

标签: groovy

Q1。使用groovy实现单例模式的最佳方法是什么?在groovy中有哪些其他选项可以支持单例机制?

任何有用的例子。

Q2。 groovy支持像File changed listener这样的东西吗?

2 个答案:

答案 0 :(得分:18)

Q1

您可以通过添加@Singleton注释(至少从groovy v 1.7.0开始)使任何类成为单例:

@Singleton
class MyClass {

}

然后,您可以使用

访问单例实例
MyClass singleton = MyClass.instance

Q2

我想你在问Groovy是否提供了每次更改文件时调用的监听器?我不知道Groovy中有任何这样的工具。如果存在这样的类,则更有可能找到Java实现(可以在Groovy程序中使用)。

答案 1 :(得分:7)

关于Q2:虽然groovy本身没有提供任何方式来通知文件更改,但Java 7可以与groovy一起使用。

特别是,如果要在当前目录中查看文件foo上的文件更改,可以执行以下操作:

import java.nio.file.*
FileSystems.default.getPath(".")  // dot for current directory
def watchKey = p.register(FileSystems.default.newWatchService(),
    StandardWatchEventKinds.ENTRY_MODIFY)
def events = watchKey.pollEvents()
events.findAll{it.context().fileName == 'foo'}.each { event ->
    println "foo was changed"
}