历史上哪些Java特性作为模式开始,现在是一种语言特性?

时间:2011-03-14 16:50:22

标签: java programming-languages history

我会说实话。我需要帮助解决我难倒的家庭作业问题。

描述历史上以模式开始并且现在支持的内容 Java中的语言特性。

12 个答案:

答案 0 :(得分:46)

他们可能正在寻找enum s。

在Java 1.5为enum引入语言支持之前,标准做法是将一组public static final int定义为枚举值。
这种模式可以在Swing上看到。

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

答案 1 :(得分:42)

我能想到的最明显的模式是通过Iterable<T>Iterator<T>进行迭代,现在可以通过增强的for-each循环作为功能使用。

答案 2 :(得分:5)

来自http://en.wikipedia.org/wiki/Java_version_history:枚举(typesafe枚举模式)

有关“有效Java”第5章第21项中此模式的更多信息(可在此处找到:http://java.sun.com/developer/Books/effectivejava/Chapter5.pdf

答案 3 :(得分:5)

注释是关于用于存储在各种xml文件或javadoc注释中的元数据,现在您可以使用注释来存储元数据和代码。

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

答案 4 :(得分:4)

迭代。它们有一个特殊的for循环,它被转换为hasNext()和next()调用。

答案 5 :(得分:1)

我会建议泛型。这从一开始就不是Java的一部分,而是从1.5及以上版本实现的。

答案 6 :(得分:1)

枚举.........................

答案 7 :(得分:1)

观察者/观察者,这是来自四人帮的“观察者[GOF]”模式...:http://www.exciton.cs.rice.edu/JavaResources/DesignPatterns/book/hires/pat5gfso.htm

Comparator<T>这也是来自四人帮的“战略[GOF]”模式:http://www.exciton.cs.rice.edu/JavaResources/DesignPatterns/book/hires/pat5ifso.htm

还有更多!

答案 8 :(得分:0)

答案 9 :(得分:0)

(糟糕。我很抱歉。一直认为C ++模板与模式有关。我错了)

&LT;&LT;&LT;&LT;&LT;忽略以下行&gt;&gt;&gt;&gt;&gt;

不确定我是对的,但让我试一试。

Java Generics大致基于模板模式

http://blogs.msdn.com/b/csharpfaq/archive/2004/03/12/88913.aspx (链接在C#泛型上)

答案 10 :(得分:0)

在JLS中添加的语言功能并不多。

也许你可以说@Override支持覆盖/实现方法的模式,方法是检测方法何时覆盖父方法/实现接口方法但不支持。

http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html搜索@Override

答案 11 :(得分:0)

我注意到没有人提到Prototype(克隆)和Momento(Serializable)。