Главная » Java » Пустые интерфейсы Java

0

Некоторые интерфейсы не содержат объявлений каких-либо методов, а просто обозначают некоторое свойство или общий признак принадлежности будущих классов к некоторой группе. Примером такого интерфейса – их принято называть пустыми (empty), или интерфейсами-маркерами (marker interface), может служить Сloneable, в составе которого отсутствуют объявления каких бы то ни было методов и констант. Интерфейс Сloneable, будучи реализован-

нным В классе, относит этот класс к числу тех, в которых поддерживается механизм клонирования (см. раздел 3.9 на странице 111).

Степень абстракции интерфейсов-маркеров доведена до абсолюта, поскольку в них отсутствуют какие-либо синтаксические конструкции объявлений методов и констант. Контракт пустого интерфейса описывается исключительно с помощью документации, регламентирующей критерии, которым должен удовлетворять любой производный класс. К числу интерфейсов-маркеров, помимо упомянутого (Cloneable, относятся интерфейсы Serializable и Externalizablе (подробно рассмотренные в разделе 15.7 на странице 418), а также java.rmi.Remote (см. раздел 20.6 на странице 556) и java.util.EventListener (см. раздел 20.1 на странице 547).

Пустые интерфейсы способны оказывать серьезное влияние на поведение производных классов – вспомните, например, о Cloneable. Не стоит впадать в заблуждение и принижать значение интерфейсов-маркеров просто ввиду их "пустоты".

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии