반응형
1. 어댑터 패턴의 정의
한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환하는 역할.
아래 그림에서 어탭터 클래스를 만드는것을 의미함
2. 예시
칠면조 클래스를 오리 클래스로 바꾸는 과정
Duck 인터페이스
public interface Duck {
public void quack();
}
MallardDuck 클래스
public class MallardDuck implements Duck {
public void quack() {
System.out.println("오리!");
}
}
Turkey 인터페이스
public interface Turkey {
public void gobble();
}
WildTurkey 클래스
public class WildTurkey implements Turkey {
public void gobble {
System.out.println("칠면조!");
}
}
어댑터 클래스
public class TurkeyAdapter implements Duck {
Turkey turkey;
public TurkeyAdapter(Turkey turkey) {
this.turkey = turkey;
}
public void quack() {
turkey.gobble();
}
}
Test클래스
public class Test {
public static void main(String[] args) {
MallardDuck duck = new MallardDuck();
WildTurkey turkey = new WildTurkey();
Duck turkeyAdapter = new TurkeyAdapter(turkey);
System.out.println(duck.quack());
System.out.println(turkeyAdapter.quack());
즉 칠면조 클래스를 덕인터페이스에 맞게 변환하여 오리처럼 사용할 수 있게 해주는 패턴이 어댑터 패턴이다.
반응형
'프로그래밍 > 시큐어코딩' 카테고리의 다른 글
[디자인 패턴] 빌더 패턴 (0) | 2020.07.15 |
---|---|
[디자인 패턴] 퍼사드 패턴 (0) | 2020.07.14 |
[디자인 패턴] 커맨드 패턴 (0) | 2020.07.13 |
[디자인 패턴] 팩토리 메소드 패턴 (0) | 2020.07.13 |
[디자인 패턴] 옵저버 패턴 (0) | 2020.07.13 |