开发出高质量的系统
在我的这篇文章http://www.blogjava.net/dreamstone/archive/2006/11/04/79026.html中写了为什么不要使用java的lazy loading ,即使是double-check也解决不了问题,但是有人解决了这个问题。佩服啊。实在是巧妙,如此简单注意:在多个虚拟机的情况下这个方法还是不能用的,但是一般情况下是可以的。实现方式:
这个写法的发明者是google公司的bob lee。他还写了个轻量级ioc容器,据说不要配制文件,性能比spring快100倍。感觉100倍有些夸张,不过可以看看。
posted on 2007-02-27 20:10 dreamstone 阅读(6822) 评论(14) 所属分类: 设计模式
多此一举,spring解决的问题不是性能问题! 回复
这么说就无语了。 首先什么叫多此一举,哪些东西不是多此一举? 虽然有可能他的实现不能商业应用,但既然写了这个东西就“有可能”有他存在的价值。 另外我还没看他写的东西,不能说他好或者坏,但个人比较反感根本没有了解就发表误导性言论的做法。 最后webwork在新的版本已经加入了他写的ioc容器。 回复
有时间找他写的ioc来研究研究,学习学习 回复
這種以 initialization on demand holder (iodh) 的 lazy loading 方式只能, 也只可以應用在classloader scope 的 static scope singleton 上對特定存取區域,或 "不確定" classloader 情況下只能用回 synchronized 方法(根據 bob lee 本人的 blog, 引述 effective java 一書的說明)另, 這方法 "不是" bob lee 本人發明的.他也只是讀回來的, 他在 blog 中也有提到 回复 更多评论
to dennis: 谢谢提醒,另问一下什么情况下这个方式会失效,能不能举个例子说明一下? 回复
支持一下, 不错! 回复
嗯,找了一下effective java,在item 48 找到了,果然不是bob lee发明的,不过这种写法还是值得借鉴。另外,对与effective java中解释的话有些不了解, 谁能给解释一下: 这句:the only shortcoming of the idiom is that it does not work for instance fields ,only for static instance fields 虽然字面意思知到,但是还是不明白他讲的实际问题。 回复
另外这里关于这个问题还有一些讨论, 而作者的做法居然是用程序写代码,临时编绎,也算够走火入魔的。不过下边的讨论还是不错的。 回复
这样的写法不是新鲜主意了,在读《设计模式精解》关于singleton那章时特意查过。 回复 更多评论
to dennis: 建议你如果回文章的话尽量提供一下支持你自己观点的资料。 不知道你说的“ 對特定存取區域,或 "不確定" classloader 情況下”是什么情况 不然的话看文章的人懂得懂了,不懂的还不懂。 谢谢。如果我找到会补上。 回复
@dreamstone sorry,我并没有别的意思。 我是在读《设计模式精解》时那章singleton时提到double-check也无法解决多线程实现singleton模式的问题时,特意google了下代码,这是我收藏夹里的文章: 回复 更多评论
找到了什么情况下会有多个classloader了,这篇文章中有些内容讲了为什么会有多个classloader。 另to dennis: 谢谢提供资源,希望能提出更多问题,多交流。。 回复
纯扯淡 回复
学习。 回复
powered by: 凯发k8网页登录-凯发天生赢家一触即发官网 凯发天生赢家一触即发官网 copyright © dreamstone