2.10.4Groovy使用@Lazy

来源:互联网 发布:股票数据分析员 编辑:程序博客网 时间:2024/05/29 07:36

class Heavy{    def size = 10    Heavy() { println "Creating Heavy with $size" }}class AsNeeded{    def value    //    @Lazy Heavy heavy1 = new Heavy()    @Lazy Heavy heavy2 = {new Heavy(size: value)}()    //    AsNeeded(){ println "Created AsNeeded"}}def asNeeded = new AsNeeded(value: 1000)println asNeeded.heavy1.sizeprintln asNeeded.heavy1.sizeprintln asNeeded.heavy2.size
运行结果:

Created AsNeeded
Creating Heavy with 10
10
10
Creating Heavy with 10
1000

程序分析:

1、使用@Lazy可以推迟对象的创建,使用的时候再创建。对于那些耗时的创建对象工作。

2、实现了线程安全的代理模式。

原创粉丝点击