随笔 - 17  文章 - 49  trackbacks - 0
<2006年8月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(1)

随笔分类(17)

随笔档案(17)

相册

最新随笔

搜索

  •  

最新评论

阅读排行榜

评论排行榜

道虎纹: 静态引入 机制

 

管中窥虎

在学习 java 1.5 的过程中,我使用了 sun 公布的 tutorial ,这份文档写的比较详尽易明,但是对于想快速了解 tiger 而且具有较好 java 基础的人来说,大篇幅的英文文档是比较耗时间和非必需的,所以我将会归纳这份文档的主要内容,在保证理解的底线上,尽力减少阅读者需要的时间。

 

在以下地址可以进入各新增语言特色介绍以及下载相关文档(若有)。

http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html

 

2006 8 17 星期四

Static import

 

要使用一个类的静态成员,就要添加上类的名称,比如:

double  r  =  Math.cos(Math.PI  *  theta);

// theta是一个数值变量,不是外部static 成员,原文并未注明。

为了摆脱这些类名,有些程序员会把静态成员放到一个接口里然后去实现这个接口,这个可不好。实际上,这样做已经糟糕到有幸成为了反模式:

Constant Interface Antipattern 。(参加 Effective java Item 17 一个类用别的类的静态成员是实现的细节,而当这个类实现这样的接口时,这个接口就成为了这个类的接口的一部分,而实现细节是不应该漏入到 public 的接口中。

static import 可以让一个类可以不需要指定类名地使用静态成员,而且不需继承额外的接口,它引入了这些成员,可以单独地或者全体引入:

import   static  java.lang.Math.PI;

import   static  java.lang.Math. * ;

然后就可以简洁地使用它们:

 

double  r  =  cos(PI  *  theta);

 

static import 和以前的 import 类似, import 从包里引入 class, static import 从类里引入成员。

又到了经典一问:何时该用这个新特色?

要很谨慎地使用!只有当你不用它就被迫要么声明外部 static 成员的本地副本要么就堕落到那个反模式中的时候,你才应该用它,换言之,当你需要频繁地使用某一两个类的静态成员时才应该使用 static import 。滥用的后果就是让你的代码可读性变差,命名空间被大量的引入的静态成员所污染。若干星期后,连你自己都读得不明不白。而且如果只是用得到其中的一两个成员,就不要用批量的引入了。

 

posted on 2006-08-17 18:10 Ye Yiliang 阅读(1141) 评论(4)  编辑  收藏 所属分类: Java

FeedBack:
# re: 第五道虎纹:静态引入机制 2006-08-17 18:37 escout
这种用法在.net2.0之中好像就有了  回复  更多评论
  
# re: 第五道虎纹:静态引入机制 2006-08-17 19:00 Ye Yiliang
好的语法元素,总会在主流语言间互相学习和复制,呵呵@escout
  回复  更多评论
  
# re: 第五道虎纹:静态引入机制 2006-08-17 19:24 oliver456
你写的一系列的关于java tiger 的新语法、特征写得很好,我在大四的时候,考java认证的时候,就是考的scjp5.0(里面全java tiger的新语法等 ),现在又一次学习!不过你还是要进一步深入~~~~  回复  更多评论
  
# re: 第五道虎纹:静态引入机制 2006-08-17 20:03 Ye Yiliang
嗯,的确还是很浅薄,而且也不是自己写的,是翻译和一些简化 :p@oliver456
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: