오늘은 디자인 패턴 중, 어댑터 패턴에 대해 간단한 예제를 가지고 포스팅 해보려고 한다.
어댑터 패턴이란,
한 인터페이스를 다른 인터페이스로 변환해 주는 것이라고 이해하면 된다.
간단한 코드로 이해해 보자.
public interface Duck {
public void quack(); //꽥꽥거린다.
public void fly(); // 날 수 있다.
}
public class Duck1 implements Duck {
@Override
public void quack() {
System.out.println("꽥꽥");
}
@Override
public void fly() {
System.out.println("높이 날아요!");
}
}
public interface Chicken {
public void kkokio(); //꼬끼오..
public void noFly(); // 잘지 못한다.
}
public class Chicken1 implements Chicken {
@Override
public void kkokio() {
System.out.println("꼬끼오");
}
@Override
public void noFly() {
System.out.println("못 날아요!");
}
}
public class Adapter implements Duck {
private Chicken chicken;
public Adapter(Chicken chicken) {
this.chicken = chicken;
}
@Override
public void quack() {
chicken.kkokio();
}
@Override
public void fly() {
chicken.noFly();
}
}
public static void main(String[] args) {
Duck duck1 = new Duck1();
duck1.quack();
duck1.fly();
System.out.println("================");
Chicken chicken1 = new Chicken1();
//(1)
Dcuk chickenAdapter = new Adapter(chicken1);
chickenAdapter.quack();
chickenAdapter.fly();
}
//결과
꽥꽥
높이 날아요!
================
꼬끼오
못 날아요!
Reference