🔌Adapter Pattern – Overview
🧠 Concept
🧱 Key Roles
Role
Description
💻 Java Example – UI Example (Modern vs Legacy Buttons)
// ----- Target Interface -----
interface Button {
void click();
}
// ----- Adaptee -----
class LegacyButton {
public void onPress() {
System.out.println("Legacy button pressed!");
}
}
// ----- Adapter -----
class ButtonAdapter implements Button {
private LegacyButton legacyButton;
public ButtonAdapter(LegacyButton legacyButton) {
this.legacyButton = legacyButton;
}
@Override
public void click() {
// Adapt click() call to legacy onPress() method
legacyButton.onPress();
}
}
// ----- Client -----
public class Main {
public static void main(String[] args) {
Button newButton = new ButtonAdapter(new LegacyButton());
newButton.click(); // Client uses Target interface
}
}🧠 Flow Summary
Step
Action
Adapter Does
🪜 Summary
🧾 Real-world Analogy
🧭 TL;DR
Last updated