- Part of structural design pattern.
- Making an existing class adapt as with the feature of an interface
Already present class which needs to adapted :
public class MarkerPen { public void mark(String text) { System.out.println("Marking with Marker : "+text); } }
The Interface which we need to implement :
public interface Pen { void write(String text); }
The Adapter Class which will adapt MarkerPen to work with Pen Interface :
public class MarkerPen { public void mark(String text) { System.out.println("Marking with Marker : "+text); } }
Actual class which is going to use the Pen :
public class AssignmentWork { Pen p; public void setP(Pen p) { this.p = p; } public void writeAssignment(String text) { p.write(text); } }
Main class :
public class AdapterDemo { public static void main(String[] args) { Pen pen= new PenAdapter(); AssignmentWork assignmentWork = new AssignmentWork(); assignmentWork.setP(pen); assignmentWork.writeAssignment("Hello Adapter Class"); } }