什么Java特性从历史上开始是一种模式,现在是一种语言特性?

什么Java特性从历史上开始是一种模式,现在是一种语言特性?,java,programming-languages,history,Java,Programming Languages,History,老实说。我需要一个家庭作业问题的帮助,我被这个问题难住了 描述历史上作为一种模式开始,现在由 Java中的语言特性。我建议使用泛型。这从一开始就不是Java的一部分,而是从1.5及更高版本开始实现的。他们可能正在寻找enums 在Java 1.5引入对enums的语言支持之前,标准做法是将一组public static final ints定义为enum值。 这种图案在秋千上随处可见 这些常量中有许多是在接口中定义的,这样类就可以实现接口并在没有限定类型名的情况下使用这些常量;这是一个很好的例子

老实说。我需要一个家庭作业问题的帮助,我被这个问题难住了

描述历史上作为一种模式开始,现在由
Java中的语言特性。

我建议使用泛型。这从一开始就不是Java的一部分,而是从1.5及更高版本开始实现的。

他们可能正在寻找
enum
s

在Java 1.5引入对
enum
s的语言支持之前,标准做法是将一组
public static final int
s定义为enum值。
这种图案在秋千上随处可见


这些常量中有许多是在接口中定义的,这样类就可以实现接口并在没有限定类型名的情况下使用这些常量;这是一个很好的例子。

枚举………

我能想到的最明显的模式是通过
Iterable
迭代器进行迭代,现在通过增强的for each循环作为功能提供。

From:枚举(类型安全枚举模式)


有关此模式的更多信息,请参见“有效Java”第5章第21项(可在此处找到):

注释都是关于过去存储在各种xml文件或javadoc注释中的元数据。现在,您可以使用注释与代码一起存储元数据


依赖注入是另一种模式,它虽然不是java语言的一部分,但正在进入核心jdk框架。

迭代器。它们有一个特殊的for循环,转换为HasNeXT()和NEXT()调用。

< P>

< P>(OOP。对不起。总是认为C++模板与模式有关系。我错了)

>

我不确定我是否正确,但让我试一试

Java泛型大致基于模板模式


(链接在C#泛型上)

JLS中没有添加多少语言功能

也许您可以认为@Override支持重写/实现方法的模式,它通过检测何时插入一个方法来重写父方法/实现一个接口方法,而不是


搜索@Override

观察者/可观察者,这是四人帮中的“观察者[GOF]”模式…:

Comparator
这也是四人帮的“战略[GOF]”模式:



还有更多

我注意到没有人提到原型(克隆)和Momento(可序列化)。

没有;泛型不是以模式开始的。@roflcoptr,在Java 5之前允许泛型的模式是什么?我不知道有一个。因此,这个答案是不正确的。在泛型之前,有必要在集合等中强制转换所有元素。这种使用模式被广泛使用且令人讨厌,这就是为什么Sun在1.5I中实现泛型不会称之为错误答案的原因。在泛型之前,人们做了各种各样令人厌恶的事情,试图在他们的集合上强制使用不变量,从Javadoc注释到运行时类型检查,再到扩展
ArrayList
,以及重载方法,如
add()
,以仅获取所需的类型,等等。@Voji:这就是我的意思。我在问@rofl是什么意思。如果我没有经过3次迭代,使其长度达到30个字符并进行验证码,我会更快-/添加一个链接到,你就得到了30个字符…这是如何开始的模式?而且,这不是语言功能。等等;Java的性能如何?这是什么时候发生的?@SLaks,人们过去常常担心性能,并使用性能模式来编写代码。现在它是JVM的一个特性,可以说是内置在语言中。。。或者为我讽刺性的回答提供一些其他理由:PSwing甚至使用了与魔法常量一样多的字符串。+1:但您还应该补充,Java的内置枚举支持是的实现(功能稍弱)。Swing在某些地方确实设法将“类型安全枚举模式”与类似枚举的类一起使用。例如,Swing文本中的
HTML.Tag
。真正地Java在1.5中只有枚举?哇,Java在2004年之前是一种非常落后的语言…@rsenna:是的,它实际上只是一点编译器的魔力,;)@配置器:我知道,我很高兴当Java达到1.5版本时我进入了Java。特别是对于泛型,如果没有这些,它将是类型安全地狱。(imo)我希望你对这里的答案做一些额外的工作(描述):-)哇,有很多非常有用的答案,它们来得非常快。谢谢大家!我只是想说谢谢你诚实地告诉我这是一个家庭作业问题对于那些想学习编程的学生来说,这是一个非常愚蠢的家庭作业,没有意义。教师必须是一个傻瓜。尝试程序员,而不是SOT模板是C++语言的特性,而不是设计模式。+ 1是乔恩SKET。这也是一个很好的答案