论坛首页 Java企业应用论坛

Java API设计指南

浏览 29456 次
该帖已经被评为良好帖
作者 正文
   发表时间:2006-11-11  
语句很通顺,没感觉出有描述错误的地方,多谢楼主

挑点小毛病
引用

译注:java.nio和java.lang.ProcessBuilder是指JDK6中的包,害得我在JDK1.4中找了半天,参见http://download.java.net/jdk6/doc/api/java/lang/ProcessBuilder.html,这里所谓的thing和Thing也不是真有这个方法和类,而是ProcessBuilder中的command和command(List)等多个方法。

其实java.nio是1.4的,java.lang.ProcessBuilder是1.5的
0 请登录后投票
   发表时间:2006-11-30  
谢谢楼主,一直想找这方面的资料,今天终于找到了
0 请登录后投票
   发表时间:2006-12-01  
引用

不要实现Cloneable, 即使想某一个类支持对象的复制,这个接口也没有太多的价值,如果真想支持复制功能,提供一个复制构造函数或者是一个static方法来复制对象,又或者提供一个static的工厂方法来创建对象,也会更加有效。例如想让Banana这个类拥有clone的能力,可以使用代码如下:
public Banana(Banana b) { // copy constructor
this(b.colour, b.length);
}
// ...or...
public static Banana newInstance(Banana b) {
return new Banana(b.colour, b.length);
}
构造函数的优点就在于子类可以调用父类的构造函数。static函数则是可以返回具体类的子类实现。


<<thinking in java>>附录A针对克隆有很详细的说明,这样做是不对的(我先去再看看)。
0 请登录后投票
   发表时间:2006-12-01  
这个观点,其实我也是不赞同的
我的习惯是另外提供一个IClonable接口
有一个clone方法
强迫用户实现Public的clone
这样处理可能更好一些

以前和作者沟通,他也认为这段话有欠妥当
他的本意是反对Java的Clonable接口,而不是反对clone

由于这些交流是在文章翻译以后,所以没有更新
正如前面的朋友所说
加太多的个人观点
对原文也不太尊重!
0 请登录后投票
   发表时间:2006-12-01  
这个观点,其实我也是不赞同的
我的习惯是另外提供一个IClonable接口
有一个clone方法
强迫用户实现Public的clone
这样处理可能更好一些

以前和作者沟通,他也认为这段话有欠妥当
他的本意是反对Java的Clonable接口,而不是反对clone

由于这些交流是在文章翻译以后,所以没有更新
正如前面的朋友所说
加太多的个人观点
对原文也不太尊重!
0 请登录后投票
   发表时间:2006-12-01  
先下载看看
0 请登录后投票
   发表时间:2006-12-11  
收了谢谢拉
0 请登录后投票
   发表时间:2006-12-13  
好文章
0 请登录后投票
   发表时间:2007-02-02  
这篇文章是不错的文章。
看了两遍,都有不同的感想。
首先,对译著的看法。
同意上面的观点,个人的看法有些多。
但是我想个人有看法也要表达出来,和大家交流,这样才好。
所以我想是不是可以在原文的地方只是标注出(1)之类的脚注,
在后面将个人的看法统一写出来。
其次,我对API设计的看法。
上面说的问题,在开发的过程中,遇到了一些。
例如protected,private,public等关键字的使用;
到底提供多少API等问题。这些问题也的确给我后来的维护带来了一些麻烦。
因为经验较少,所以在设计的时候,经常采用的是参照jdk的方法。
看看jdk是如何命名的,看看jdk是如何设计的。这个方法在我的工作中的确对我的帮助不小,而且说服用户也较容易。
这使我想到楼主的另一个文章,模式用还是不用的文章。
在设计的时候,我有时候尽量采用一些模式,也是为了说服用户,让用户容易理解。
尽管有时候用户对这个模式究竟是什么也不是十分清楚。
最后谢谢楼主的翻译。希望楼主继续能够翻译出好的文章。如果希望我的帮助,我也愿意帮助楼主作一些工作。
0 请登录后投票
   发表时间:2007-02-02  
谢谢楼主呀
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics