本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7616177
建立时间:2006年5月29日




[J2SE]静态引入机制
软件技术

lhwork 发表于 2006/8/21 10:05:58

管中窥虎 在学习 java 1.5 的过程中,我使用了 sun 公布的 tutorial ,这份文档写的比较详尽易明,但是对于想快速了解 tiger 而且具有较好 java 基础的人来说,大篇幅的英文文档是比较耗时间和非必需的,所以我将会归纳这份文档的主要内容,在保证理解的底线上,尽力减少阅读者需要的时间。   在以下地址可以进入各新增语言特色介绍以及下载相关文档(若有)。 http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html   2006 年 8 月 17 日 星期四 Static import   要使用一个类的静态成员,就要添加上类的名称,比如: 500)this.width=500'> double  r  =  Math.cos(Math.PI  *  theta);500)this.width=500'>500)this.width=500'> // theta是一个数值变量,不是外部static 成员,原文并未注明。500)this.width=500'> 为了摆脱这些类名,有些程序员会把静态成员放到一个接口里然后去实现这个接口,这个可不好。实际上,这样做已经糟糕到有幸成为了反模式: Constant Interface Antipattern 。(参加 Effective java Item 17 ) 一个类用别的类的静态成员是实现的细节,而当这个类实现这样的接口时,这个接口就成为了这个类的接口的一部分,而实现细节是不应该漏入到 public 的接口中。 而 static import 可以让一个类可以不需要指定类名地使用静态成员,而且不需继承额外的接口,它引入了这些成员,可以单独地或者全体引入: 500)this.width=500'> import   static  java.lang.Math.PI;500)this.width=500'>500)this.width=500'> import   static  java.lang.Math. * ;500)this.width=500'> 然后就可以简洁地使用它们:   500)this.width=500'> double  r  =  cos(PI  *  theta);   static import 和以前的 import 类似, import 从包里引入 class, 而 static import 从类里引入成员。 又到了经典一问:何时该用这个新特色? 要很谨慎地使用!只有当你不用它就被迫要么声明外部 static 成员的本地副本要么就堕落到那个反模式中的时候,你才应该用它,换言之,当你需要频繁地使用某一两个类的静态成员时才应该使用 static import 。滥用的后果就是让你的代码可读性变差,命名空间被大量的引入的静态成员所污染。若干星期后,连你自己都读得不明不白。而且如果只是用得到其中的一两个成员,就不要用批量的引入了。


阅读全文(1726) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.045 second(s), page refreshed 144789978 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号