我会说实话。我需要帮助解决我难倒的家庭作业问题。
描述历史上以模式开始并且现在支持的内容 Java中的语言特性。
答案 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)。