JavaAPI设计得很差吗?为什么?
我听过很多,JavaAPI的设计很糟糕。你同意吗?如果同意,如何同意?我知道日历/日期API存在重大问题。collections api需要使用大量样板代码。文件/IO API在某些方面可能比较复杂JavaAPI设计得很差吗?为什么?,java,api,Java,Api,我听过很多,JavaAPI的设计很糟糕。你同意吗?如果同意,如何同意?我知道日历/日期API存在重大问题。collections api需要使用大量样板代码。文件/IO API在某些方面可能比较复杂 但是,这是否适用于所有国家?对于哪些版本的Java?简而言之,Java API是可以的 更长的答案是,一些API在Java版本上进行了更改,有时是重大的更改,并且可能包含一些奇怪的部分。例如,Date有很多不推荐使用的方法。然而,重要的是这些API确实存在。Java的标准库非常强大,您可以在其中找到
但是,这是否适用于所有国家?对于哪些版本的Java?简而言之,Java API是可以的 更长的答案是,一些API在Java版本上进行了更改,有时是重大的更改,并且可能包含一些奇怪的部分。例如,Date有很多不推荐使用的方法。然而,重要的是这些API确实存在。Java的标准库非常强大,您可以在其中找到几乎任何东西的API(可能并不总是完美的API,但已经足够好了)
注:下次有人发表这样的声明时,问问他一生中自己设计了多少种语言 我不会说所有的设计都很糟糕。主要的问题是向后兼容性,人们仍然希望那些早就被弃用的特性可以使用,这样10年前编写的代码就不必更改了。这使得API相当大,并且通常允许多种方法来做相同的事情,而不清楚哪种方法更好。我在1995年开始使用Java API。任何如此古老的API都很容易受到批评 要回答为什么的问题:
- Java引入枚举太晚了——如果API从一开始就有枚举,它会更好
- WORA(写一次,到处运行)-或者就像有人说的“写一次,到处调试”。当你的目标是最不常见的拆卸者时,制作一个优秀的API是非常困难的。没有一个真正的Windows、Mac、Unix或Linux开发者会对Java感到满意
可以肯定地说,API越旧,“越差”。新的API是根据之前的知识设计的。这也跨越了Langues——java(取决于你的观点)比C++好。C++(取决于你的观点)比C好,等等。< P> java不是一个设计不良的API。Java是在当前最佳实践还不完全为人所知的时候开发的。许多实现都是以一种现在不受欢迎的方式完成的。从那时起,为了结合更好的技术和实践,已经做了很多工作。这就是为什么有很多不推荐使用的代码 在这本神奇的书中,有很多这样的东西。Bloch谈到了在最初的实现中所犯的一些“错误”,以及他们是如何努力修复这些错误的。如果您是一名认真的Java开发人员,还没有体验过有效的Java,我强烈推荐您使用它。(事实上,我向大家推荐,他是一位对Java有着透彻理解的优秀作家。) JavaAPI设计得很差吗?为什么 没有 因为,虽然它不是完美的,但是坏API的数量远远少于好的部分 无论如何,你真的应该问这个问题,你直接从谁那里听到的,否则这将是在我的国家被称为“坏电话”(这是一个很棒的儿童游戏:)的东西,按摩链中的每个节点都会修改信息的微妙性,最后类似于: 我不喜欢java.util.Calendar 可能最终导致 JavaAPI完全被破坏了,设计者应该被关进监狱 当然,在中间有一个“消息转换”!!!p>
:)就像任何存在一段时间的东西一样,它会变得陈旧。与.NET一样,Sun等人也试图保持新事物。但是,时间使一切停滞不前,特别是考虑到您不能更改接口,只能添加,因为更改会破坏一切。:-) Java很古老(它起源于90年代初,但直到1995年左右才发布到1.0),任何旧的API都可以批评。这并不是说它们本身就不好。他们只是他们时代的产物,这种哲学现在被认为是不好的(通常有很好的理由,但并不总是如此) 要解决您提出的问题:
- 日期很糟糕,因为它是可变的。不可变日期类会更干净(Calendar也有同样的问题)李>
- 字符串上的公共构造函数充其量是有问题的。