What is adapter class? Explain advantages of adapter classes over listener interfaces with suitable example.

 Java Adapter Classes

Java adapter classes provide the default implementation of listener interfaces. If you inherit the adapter class, you will not be forced to provide the implementation of all the methods of listener interfaces. So it saves code.


Pros of using Adapter classes:

  • It assists the unrelated classes to work combinedly.
  • It provides ways to use classes in different ways.
  • It increases the transparency of classes.
  • It provides a way to include related patterns in the class.
  • It provides a pluggable kit for developing an application.
  • It increases the reusability of the class.

The adapter classes are found in java.awt.event, java.awt.dnd and javax.swing.event packages.

 2nd part

Any class which handles events must implement a listener interface for the event type it wishes to handle. A class can implement any number of listener interfaces. To implement a listener interface the class must implement every method in the interface.

Sometimes we may want to implement only one or two of the methods in an interface. We can avoid having to write our own implementation of all the methods in an interface by using an adapter class. An adapter class is a class that already implements all the methods in the corresponding interface. Our class must extend the adapter class by inheritance so we can extend only one adapter class in our class because Java does not support multiple inheritances. Here are the Java adapter classes and the listener interfaces they implement. We can notice that adapters exist for only listener interfaces with more than one method.

Adapter Class

ComponentAdapter

Container Adapter

FocusAdapter

Key Adapter

MouseMotionAdapter

MouseAdapter

Window Adapter


Listener Interface

ComponentListener

ContainerListener

FocusListener

KeyListener

MouseListener

MouseMotionListener

Window Listener


Comments

Popular posts from this blog

Suppose that a data warehouse for Big-University consists of the following four dimensions: student, course, semester, and instructor, and two measures count and avg_grade. When at the lowest conceptual level (e.g., for a given student, course, semester, and instructor combination), the avg_grade measure stores the actual course grade of the student. At higher conceptual levels, avg_grade stores the average grade for the given combination. a) Draw a snowflake schema diagram for the data warehouse. b) Starting with the base cuboid [student, course, semester, instructor], what specific OLAP operations (e.g., roll-up from semester to year) should one perform in order to list the average grade of CS courses for each BigUniversity student. c) If each dimension has five levels (including all), such as “student < major < status < university < all”, how many cuboids will this cube contain (including the base and apex cuboids)?

Suppose that a data warehouse consists of the four dimensions; date, spectator, location, and game, and the two measures, count and charge, where charge is the fee that a spectator pays when watching a game on a given date. Spectators may be students, adults, or seniors, with each category having its own charge rate. a) Draw a star schema diagram for the data b) Starting with the base cuboid [date; spectator; location; game], what specific OLAP operations should perform in order to list the total charge paid by student spectators at GM Place in 2004?

Suppose that a data warehouse consists of the three dimensions time, doctor, and patient, and the two measures count and charge, where a charge is the fee that a doctor charges a patient for a visit. a) Draw a schema diagram for the above data warehouse using one of the schemas. [star, snowflake, fact constellation] b) Starting with the base cuboid [day, doctor, patient], what specific OLAP operations should be performed in order to list the total fee collected by each doctor in 2004? c) To obtain the same list, write an SQL query assuming the data are stored in a relational database with the schema fee (day, month, year, doctor, hospital, patient, count, charge)