Adapter Pattern
Author: Deron Eriksson
Description: This Java tutorial describes the adapter pattern, a structural design pattern.
Tutorial created using: Windows Vista || JDK 1.6.0_11 || Eclipse JEE Ganymede SR1 (Eclipse 3.4.1)

Page:    1 2 >

The adapter pattern is a structural design pattern. In the adapter pattern, a wrapper class (ie, the adapter) is used translate requests from it to another class (ie, the adaptee). In effect, an adapter provides particular interactions with an adaptee that are not offered directly by the adaptee.

The adapter pattern takes two forms. In the first form, a "class adapter" utilizes inheritance. The class adapter extends the adaptee class and adds the desired methods to the adapter. These methods can be declared in an interface (ie, the "target" interface).

In the second form, an "object adapter" utilizes composition. The object adapter contains an adaptee and implements the target interface to interact with the adaptee.

Now let's look at simple examples of a class adapter and an object adapter. First, we have an adaptee class named CelciusReporter. It stores a temperature value in Celcius.

package com.cakes;

public class CelciusReporter {

	double temperatureInC;

	public CelciusReporter() {

	public double getTemperature() {
		return temperatureInC;

	public void setTemperature(double temperatureInC) {
		this.temperatureInC = temperatureInC;


Here is our target interface that will be implemented by our adapter. It defines actions that our adapter will perform.

package com.cakes;

public interface TemperatureInfo {

	public double getTemperatureInF();

	public void setTemperatureInF(double temperatureInF);

	public double getTemperatureInC();

	public void setTemperatureInC(double temperatureInC);


(Continued on page 2)

Page:    1 2 >

Related Tutorials: