서로 맞지 않는 두가지 객체를 연결해주는 역활을 하는 것
예시
getName, getAge메소드만 존재하는 Person객체에 대해서 showName, showAge메소드를 사용하기 위해 중간 다리를 놔주는 형태이다
기본적인 Perosn객체
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
원하는 메소드가 담겨있는 인터페이스
public interface Student {
String showName();
int showAge();
}
Student인터페이스를 구현받고 Person객체를 원하는 메소드를 통해 활용할 수 있게 한다
public class PersonAdapter implements Student{
private Person person;
public PersonAdapter(Person person) {
this.person = person;
}
@Override
public String showName() {
return person.getName();
}
@Override
public int showAge() {
return person.getAge();
}
}
private static void adapter() {
Person personWoonsik = new Person("woonsik", 26);
System.out.println(personWoonsik.getName());
System.out.println(personWoonsik.getAge());
PersonAdapter adapter = new PersonAdapter(personWoonsik);
System.out.println(adapter.showName());
System.out.println(adapter.showAge());
}
woonsik
26
woonsik
26