Groovy 设计模式 -- 借贷

借贷模式

http://groovy-lang.org/design-patterns.html#_loan_my_resource_pattern

The Loan my Resource pattern ensures that a resource is deterministically disposed of once it goes out of scope.

This pattern is built in to many Groovy helper methods. You should consider using it yourself if you need to work with resources in ways beyond what Groovy supports.

 

 

模式反例

def reader = f.newReader() reader.splitEachLine(' ') { wordList -> println wordList } reader.close() // => // [ "Mon", "Jun", "18", "22:38:17", "EST", "2007" ] // [ "RunPattern" ]

 

模式正例

def withListOfWordsForEachLine(File f, Closure c) { def r = f.newReader() try { r.splitEachLine(' ', c) } finally { r?.close() } }

Now, we can re-write our code as follows:

withListOfWordsForEachLine(f) { wordList -> println wordList } // => // [ "Mon", "Jun", "18", "22:38:17", "EST", "2007" ] // [ "RunPattern" ]

 

This is much simpler and has removed the explicit close(). This is now catered for in one spot so we can apply the appropriate level of testing or reviewing in just one spot to be sure we have no problems.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值