Что такое класс адаптера в Java? Преимущества класса адаптера и его типов

Опубликовано: 2021-05-19

Оглавление

Что такое класс адаптера?

В JAVA класс адаптера позволяет реализовать интерфейсы прослушивателя по умолчанию. Понятие интерфейсов прослушивателя происходит из модели событий делегирования. Это один из многих методов, используемых для обработки событий в языках программирования с графическим интерфейсом пользователя (GUI), таких как JAVA.

Программирование графического пользовательского интерфейса в основном основано на событиях, когда пользователь взаимодействует с системой через соответствующие визуальные эффекты и графику. Это означает, что каждое действие, инициированное пользователем, например движение мыши, изменяющее координаты указателя мыши на экране, нажатие кнопки или прокрутка страницы, считается независимым событием.

Каждое из этих независимых событийных действий неразрывно связано с сегментом кода, который повторяет, какой ответ приложение должно предоставить пользователю. Путь прост. Пользователь (источник) генерирует событие и отправляет его на один или несколько интерфейсов прослушивателя. Как только потенциал события получен, интерфейс прослушивателя обрабатывает событие и возвращает подходящий ответ.

Этот путь обосновывает процесс обработки событий. Поэтому класс адаптера в JAVA используется для реализации интерфейса, имеющего набор фиктивных методов. Если программист решит наследовать класс адаптера, он не будет вынужден реализовывать все методы, перечисленные в конкретном интерфейсе прослушивателя. Класс адаптера может быть дополнительно разделен на подклассы, чтобы программист мог переопределять только необходимые методы. Другими словами, используя класс адаптера, программист может быстро создать собственный интерфейс прослушивателя для событий поля. Это помогает сохранить код.

Какая связь между классом адаптера и интерфейсом слушателя?

Слушатели используются, когда программист намеревается использовать большинство методов, перечисленных в интерфейсе. Если интерфейс прослушивателя реализуется непосредственно классом, все методы в этом интерфейсе должны быть реализованы, что делает код неоправданно большим. Эту сложность можно решить, вызвав класс адаптера. Класс адаптера оказывается необходимым в случаях, когда событие вызывает только определенные методы.

Программисту нужно только создать его подкласс и переопределить методы интереса, чтобы использовать класс адаптера. Таким образом, классы адаптеров полезны для интерфейсов слушателей в JAVA, имеющих более одного метода. Чтобы лучше понять это, давайте рассмотрим пример интерфейса MouseListener. Этот интерфейс уведомляется всякий раз, когда происходит изменение состояния мыши. Он имеет пять методов: щелчок мышью, mouseExited, mouseEntered, mousePressed и mouseReleased.

При уведомлении о событии, даже если необходим только один из этих методов, все они должны быть реализованы. Методы, которые не нужны, остаются пустыми. Класс адаптера используется, чтобы избежать этой ненужной реализации пустого тела метода.

Понимание шаблона проектирования адаптера

Говоря нетехническим языком, адаптер по определению конструктивно спроектирован так, чтобы два несовместимых интерфейса могли работать вместе. Таким образом, шаблон адаптера может сделать два несовместимых интерфейса совместимыми без изменения их существующего кода. Соответствующие интерфейсы могут быть несогласованными, но их внутренние функции должны соответствовать искомому требованию. Чтобы лучше понять это, давайте рассмотрим соответствующий пример.

Мы знаем, что в разных странах есть разные электрические розетки, напряжения и измерения частоты. Если нам нужно использовать устройство, разработанное в соответствии со спецификациями одной страны, в другой стране, мы должны убедиться, что устройство совместимо.

Например, в Великобритании обычно используются розетки типа G, в США и Японии — розетки типа A и типа B, а в Индии — типа C, типа D и типа M. Ноутбук или мобильное устройство, привезенное из Индии, поэтому быть несовместимым с электрическими характеристиками, скажем, США и Японии. Именно здесь назначение адаптера становится важным для преобразования несовместимого кода в совместимый код.

Типы классов адаптеров

Классы адаптера можно найти в java. пакеты awt.the event, java.awt.dnd и java.swing.event. Стандартные классы адаптеров с соответствующими им интерфейсами слушателя в JAVA упомянуты ниже для каждого из этих пакетов.

1. ява. ох. канун

Класс адаптера Интерфейс слушателя
WindowAdapter WindowListener
KeyAdapter KeyListener
Адаптер для мыши MouseListener
МышьДвиженияАдаптер Слушатель Движения Мыши
Фокусадаптер FocusListener
КомпонентАдаптер ComponentListener
КонтейнерАдаптер ContainerListener
HierarchyBoundsAdapter HierarchyBoundsListener

2. java.awt.dnd

Класс адаптера Интерфейс слушателя
DragSourceAdapter DragSourceListener
Перетащите целевой адаптер DragTargetListener

3. javax.swing.event

Класс адаптера Интерфейс слушателя
MouseInputAdapter MouseInputListener
Внутренний фреймадаптер Интерналфремелистенер

Они присутствуют в наборе инструментов Abstract Window Toolkit соответствующих пакетов Java. Чтобы понять природу методов, содержащихся в интерфейсах прослушивателя, рассмотрим несколько примеров:

  1. Интерфейс WindowListener определяет методы, связанные с событиями окна, включая открытие и закрытие окна, активацию и деактивацию окна, а также иконификацию и детоксикацию окна.
  2. Интерфейс KeyListener определяет методы, обрабатывающие ключевые события, которые запускаются пользователем, взаимодействующим с компонентами клавиатуры.
  3. Интерфейс MouseListener уведомляется, когда мышь находится в стабильном состоянии и получает потенциальное событие, связанное с выходом, входом, щелчком, нажатием или отпусканием компонента в визуальном кадре пользователя.
  4. Интерфейс Component Listener получает потенциалы событий компонентов. Здесь компонент относится к любому графическому объекту, предназначенному для взаимодействия с пользователем, такому как кнопки, флажки и полосы прокрутки.

Разница между адаптером класса и адаптером объекта

Чтобы гарантировать функциональность и гибкость, объектно-ориентированное программирование, такое как JAVA, предлагает программистам такие функции, как наследование и композиция. Если вы попытаетесь повторно использовать конкретный код, унаследовав его функции от другого класса, созданный вами подкласс останется зависимым от родительского класса на протяжении всей программы.

Это во многих случаях делает систему все более сложной и менее поддающейся тестированию, а обмен функциональностью во время выполнения чрезвычайно усложняет работу. В композиции один класс только использует другой. Разделению между ними способствует четкое определение интерфейсов.

Таким образом, спор между адаптером класса и адаптером объекта можно разрешить следующим образом. Адаптер класса использует наследование и поэтому может только обертывать класс. Он не может обернуть интерфейс, потому что по определению он должен быть производным от некоторого базового класса. Адаптер объекта использует композицию и поэтому может обертывать как классы, так и интерфейсы. В первую очередь это достигается за счет того, что в составе каждый класс или интерфейс является закрытым инкапсулированным членом.

Преимущества класса адаптера

  1. Класс адаптера помогает несвязанным классам работать вместе.
  2. При использовании класса адаптера один и тот же класс можно использовать несколькими способами.
  3. Пользователям предоставляется возможность сменного комплекта для разработки приложений. Таким образом, использование класса становится многоразовым.
  4. Это повышает прозрачность занятий.
  5. Он предоставляет способ включения связанных шаблонов в класс.

Изучайте онлайн -курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

В этой статье мы поняли механизм класса адаптера в JAVA, три основных пакета, которые содержат классы адаптера, и преимущества классов адаптера для программистов. Классы адаптеров являются абстрактными классами для получения различных событий и существуют для удобства создания объектов-слушателей. Благодаря различным функциональным возможностям классы адаптеров предлагают программистам платформу для инноваций с помощью методологии Swing.

Если вы хотите улучшить свои навыки работы с Java, вам нужно взяться за эти Java-проекты. Если вам интересно узнать больше о Java и разработке полного стека, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов тщательного обучения, 9+ проекты и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Что такое класс адаптера в Java?

Класс адаптера — это класс, определенный с использованием шаблона адаптера. Адаптер можно использовать для добавления новых возможностей в существующий класс без изменения исходного класса. Например, класс java.util.Scanner находится в пакете java.util. Класс Scanner не может читать из файла, поскольку файл не является InputStream. Для чтения из файла мы создаем класс адаптера, который принимает InputStream в качестве аргумента и возвращает обработанные данные в виде объекта. Шаблон адаптера используется для расширения функциональности существующего класса без какого-либо изменения его кода.

Что такое шаблоны проектирования в Java?

Шаблон проектирования — это общее многократно используемое решение часто возникающей проблемы в заданном контексте разработки программного обеспечения. Это не готовый дизайн, который можно преобразовать непосредственно в код. Это описание или шаблон решения проблемы, который можно использовать во многих различных ситуациях. В объектно-ориентированном программировании шаблоны проектирования — это установленные соглашения, упрощающие проектирование и реализацию программных систем. В Java есть несколько шаблонов проектирования. Нет необходимости брать шаблон проектирования из другого языка. Шаблоны проектирования могут быть написаны в очень простой и краткой форме.

Какой наиболее часто используемый шаблон проектирования в Java?

Вы найдете множество шаблонов проектирования в java. Единственным наиболее часто используемым шаблоном проектирования является Factory Pattern. Он имеет множество применений в корпоративной разработке. Это помогает удалить зависимость от конкретных классов в приложении. Приведем пример из реальной жизни. В приложении электронной коммерции вам может потребоваться создать объект пользователя как в тестовой, так и в рабочей среде. Пользовательский класс может иметь множество подклассов, таких как Admin, Shopkeeper, Seller, User и т. д. Общий метод main в шаблоне factory выглядит следующим образом: public class UserFactory { public static Object create () { User user = createAdmin (); // смотрим, разрешено ли администратору return user ; // вернуть текущего пользователя } }. Посмотрите здесь, как пользовательский класс не зависит от конкретного класса. Хотя это и не полный пример, он показывает, как работает шаблон Factory.