Definition: The adapter pattern is wrapped around another object to change the interface so that the object can be used in a different way.
Usage: Use the adapter pattern to enable a class to use code intended to be used by other classes.
interface Widget {
renderWidget();
}
interface WidgetlessRenderer {
render();
}
class WidgetAsWidgetlessRenderer implements WidgetlessRenderer {
WidgetRendererAsWidgetlessRenderer(Widget widget) {
this.widget = widget;
}
render() {
widget.renderWidget();
}
Widget widget;
}
This sort of code can be useful in certain circumstances. In Lucky's Puzzle Carnival, similar code is used to create buttons that display panels full of text widgets. The WidgetAsWidgetlessRenderer is wrapped around the panel so that the button can render it.
Copyright (C) 2008-2009 Steven Fletcher. All rights reserved.