Буду честным. Мне нужна помощь с вопросом о домашнем задании, с которым я столкнулся.
Опишите то, что исторически началось как шаблон и теперь поддерживается языковая функция в Java.
Буду честным. Мне нужна помощь с вопросом о домашнем задании, с которым я столкнулся.
Опишите то, что исторически началось как шаблон и теперь поддерживается языковая функция в Java.
Они, вероятно, ищут enum
s.
Прежде чем Java 1.5 представила поддержку языка для enum
s, стандартная практика заключалась в определении набора public static final int
в качестве значений перечисления.
Этот шаблон можно увидеть повсюду в Swing.
Многие из этих констант определены в интерфейсах, так что классы могут реализовать интерфейс и использовать константы без квалифицирующего имени; SwingConstants
- отличный пример.
Самый очевидный образец, о котором я могу думать, это итерация через Iterable<T>
и Iterator<T>
, который теперь доступен как функция через расширенный для каждого цикла.
Из http://en.wikipedia.org/wiki/Java_version_history: перечисления (типичный шаблон перечисления)
Подробнее об этом шаблоне в пункте 21 главы 5 "Эффективная Java" (найдено здесь: http://java.sun.com/developer/Books/effectivejava/Chapter5.pdf)
Аннотации относятся к метаданным, которые использовались для хранения в различных файлах xml или в комментариях javadoc, теперь вы можете использовать аннотации для хранения метаданных с кодом.
Включение зависимостей - это еще один шаблон, который, хотя и не является частью языка java, проникает в основные рамки jdk.
итераторов. У них есть специальный цикл, который преобразуется в вызовы hasNext() и next().
Я бы предложил Generics. Это не было частью Java с самого начала, но было реализовано от 1,5 и выше.
перечислений.........................
Наблюдатель/Наблюдаемый, который является образцом "Наблюдателя [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
И еще много!
(К сожалению, извините. Всегда думал, что С++-шаблоны имеют какое-то отношение к шаблону. Я был не прав)
< < < < < Игнорируйте следующие строки → → >
Не уверен, что я прав, но позвольте мне сделать снимок.
Java Generics примерно основаны на шаблоне шаблона
http://blogs.msdn.com/b/csharpfaq/archive/2004/03/12/88913.aspx (Ссылка на С# generics, хотя)
Не было добавлено много функций language, которые появляются в JLS.
Возможно, вы могли бы утверждать, что @Override поддерживает шаблон переопределяющих/реализующих методов, обнаруживая, когда метод был включен, чтобы переопределить родительский метод/реализовать метод интерфейса, но не делает.
http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html искать @Override
Я заметил, что никто не упоминал Prototype (клон) и Momento (Serializable).