디자인 패턴 ~Adapter~
12443 단어 객체 지향디자인 패턴신인 프로그래머 응원uml자바
1. 소개
GoF의 디자인 패턴에서 Adapter 패턴을 정리합니다.
2. Adapter 패턴이란?
상속을 이용한 방법과 위양을 이용한 방법이 있습니다.
래퍼 패턴이라고도 합니다. 래퍼는 감싸는 것을 의미합니다.
3. 샘플 클래스 다이어그램
3-1. ~계승을 이용한 방법~
3-2. ~위양을 이용한 방법~
4. 샘플 프로그램
학생의 이름과 연령을 표시하는 프로그램입니다.
4-1. ~계승을 이용한 방법~
4-1-1. Human 클래스
원래 제공되는 클래스입니다.
Human.java
public class Human {
private String name;
private int age;
public Human(String name, int age) {
this.name = name;
this.age = age;
}
public void printName() {
System.out.println(name);
}
public void printAge() {
System.out.println(age);
}
}
4-1-2. Student 인터페이스
필요한 인터페이스입니다.
Student.java
public interface Student {
public abstract void showName();
public abstract void showAge();
}
4-1-3. HumanAdapter 클래스
Adapter 역할이 되는 클래스입니다.
HumanAdapter.java
public class HumanAdapter extends Human implements Student {
public HumanAdapter(String name, int age) {
super(name, age);
}
public void showName() {
printName();
}
public void showAge() {
printAge();
}
}
4-1-4. Main 클래스
메인 처리를 실시하는 클래스입니다.
Main.java
public class Main {
public static void main(String[] args) {
Student student = new HumanAdapter("田中", 25);
student.showName();
student.showAge();
}
}
4-1-5. 실행 결과
田中
25
4-2. ~위양을 이용한 방법~
4-2-1. Human 클래스
원래 제공되는 클래스입니다.
Human.java
public class Human {
private String name;
private int age;
public Human(String name, int age) {
this.name = name;
this.age = age;
}
public void printName() {
System.out.println(name);
}
public void printAge() {
System.out.println(age);
}
}
4-2-2. Student 인터페이스
필요한 인터페이스입니다.
Student.java
public interface Student {
public abstract void showName();
public abstract void showAge();
}
4-2-3. HumanAdapter 클래스
Adapter 역할이 되는 클래스입니다.
HumanAdapter.java
public class HumanAdapter implements Student {
private Human human;
public HumanAdapter(String name, int age) {
this.human = new Human("田中", 25);;
}
public void showName() {
human.printName();
}
public void showAge() {
human.printAge();
}
}
4-2-4. Main 클래스
메인 처리를 실시하는 클래스입니다.
Main.java
public class Main {
public static void main(String[] args) {
Student student = new HumanAdapter("田中", 25);
student.showName();
student.showAge();
}
}
4-2-5. 실행 결과
田中
25
5. 장점
Adapter 패턴은 기존 클래스에 한 껍질을 걸어 필요한 클래스를 만듭니다. 이 패턴을 사용하면 필요한 메소드를 신속하게 만들 수 있습니다. 만약 버그가 검출되었다고 해도, 기존의 클래스가 충분히 테스트되고 있다면, Adapter역의 클래스를 중점적으로 조사하면 좋게 되므로, 프로그램의 체크가 편해집니다.
또한 Adapter 패턴을 사용하면 기존 클래스에 손을 추가하지 않고 기능을 구현할 수 있으므로 기존 클래스를 다시 테스트하는 번거로움을 줄일 수 있습니다.
6. GitHub
7. 디자인 패턴 목록
8. 참고
이번 기사 및 샘플 프로그램은 이하의 서적을 바탕으로 작성하였습니다.
매우 이해하기 쉽고 공부가되었습니다. 감사합니다.
디자인 패턴이나 샘플 프로그램에 대한 설명이 상세하게 쓰여져 있으므로, 꼭 서적의 분도 봐 주세요.
Reference
이 문제에 관하여(디자인 패턴 ~Adapter~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/i-tanaka730/items/da8731c219c921d30a59텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)