开发出高质量的系统
在我的这篇文章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 阅读(6967) 评论(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 虽然字面意思知到,但是还是不明白他讲的实际问题。 回复 更多评论
另外这里关于这个问题还有一些讨论, http://weblogs.java.net/blog/kirillcool/archive/2005/08/how_single_is_y.html 而作者的做法居然是用程序写代码,临时编绎,也算够走火入魔的。不过下边的讨论还是不错的。 回复 更多评论
这样的写法不是新鲜主意了,在读《设计模式精解》关于singleton那章时特意查过。 回复 更多评论
to dennis: 建议你如果回文章的话尽量提供一下支持你自己观点的资料。 不知道你说的“ 對特定存取區域,或 "不確定" Classloader 情況下”是什么情况 不然的话看文章的人懂得懂了,不懂的还不懂。 谢谢。如果我找到会补上。 回复 更多评论
@dreamstone sorry,我并没有别的意思。 我是在读《设计模式精解》时那章singleton时提到double-check也无法解决多线程实现singleton模式的问题时,特意google了下代码,这是我收藏夹里的文章:http://www.j2medev.com/Article/Class3/pattern/200511/1004.html 回复 更多评论
找到了什么情况下会有多个ClassLoader了,这篇文章中有些内容讲了为什么会有多个ClassLoader。 http://www.blogjava.net/dreamstone/archive/2007/02/28/101183.html 另to dennis: 谢谢提供资源,希望能提出更多问题,多交流。。 回复 更多评论
纯扯淡 回复 更多评论
学习。 回复 更多评论
Powered by: BlogJava Copyright © dreamstone