Java аннотация
Поведенческий шаблон Observer предоставляет компоненту возможность гибкой рассылки сообщений зарегистрированным получателям. В соответствии с этим шаблоном, генераторы сообщений (наблюдаемые компоненты) рассылают сообщения, которые представляют события в системе. Эти события обрабатываются одним или несколькими получателями сообщений (компоненты-наблюдатели). Наблюдаемые компоненты отвечают за доставку событий всем заинтересованным наблюдателям (т.е. тем, которые установили сеансы связи). Интерфейс передачи сообщений позволяет наблюдаемым компонентам детализировать события для наблюдателей. Если наблюдаемый объект многопоточный, он может поддерживать очередь сообщений, приоритеты сообщений, перекрытие сообщений и т.д. Аннотация – средство, которое позволяет встроить некоторую информацию (метаданные) в исходные и исполняемые файлы. Политика удержания аннотации определяет, на каком этапе аннотация отбрасывается. Определены три политики: SOURCE – аннотации удерживаются только в исходном файле, CLASS – аннотации сохраняются в файле .class во время компиляции, но недоступны JVM во время выполнения, RUNTIME – аннотации сохраняются в файле .class и доступны во время выполнения. RTTI позволяет получить информацию о точном типе объекта, когда имеется лишь ссылка базового типа. Использование этой информации подразумевает отказ от всех преимуществ полиморфизма. Рекомендуется использовать именно полиморфные методы, а к RTTI обращаться только в крайнем случае. Различие между механизмом RTTI и рефлексией состоит в том, что при использовании RTTI файл .class открывается и анализируется компилятором, а при использовании рефлексии файл .class открывается и обрабатывается системой выполнения. |