Adapter 패턴

구름코딩·2020년 11월 1일

Java 디자인 패턴

목록 보기
8/12

Adapter란

서로 맞지 않는 두가지 객체를 연결해주는 역활을 하는 것

예시

getName, getAge메소드만 존재하는 Person객체에 대해서 showName, showAge메소드를 사용하기 위해 중간 다리를 놔주는 형태이다

Person 객체
기본적인 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;
    }
}
Student 인터페이스 및 PersonAdapter 클래스
원하는 메소드가 담겨있는 인터페이스
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
profile
내꿈은 숲속의잠자는공주

0개의 댓글