public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- Person이라는 객체가 외부 API(검증된)라고 생각해 보자
- 그 기능의 일부를 내가 만든 시스템에서 재정의한 이름(메서드)으로 사용하려고 한다
- 인터페이스를 만든다(내 시스템)
public interface Student {
String showName();
int showAge();
}
- Person의 이름과 나이를 보여주는 메서드를 showName()과 showAge()로 재정의하였다
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();
}
}
- PersonAdapter를 만들어 생성자로 Person 객체를 받아준 후 그 Person 객체를 사용해서 메서드의 이름을 재정의하였다
사용 목적
- 서로 다른 시스템의 클래스를 다른 쪽에서 사용할 수 있다
'디자인패턴' 카테고리의 다른 글
싱글톤 패턴 (0) | 2022.12.21 |
---|---|
팩토리 메서드 패턴 (0) | 2022.12.20 |
빌더 패턴 (0) | 2022.12.19 |