본문 바로가기
Java/Design Pattern

[Java] 어댑터 패턴 (Adapter pattern)

by 스응 2023. 3. 27.
728x90
728x90

어댑터 패턴 (Adapter pattern)

  - 호환되지 않는 클래스들을 함께 이용할 수 있도록 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움
  - 기존의 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 생성함

      ⇒ 인터페이스를 이용하면 코드를 좀 더 유연하게 설계할 수 있음

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 어댑터 패턴 설정
public class TencoAdapter implements Electronic220v { 
 
    // 호환시킬 인터페이스를 멤버 변수로 받음
    Electronic110v electronic110v; 
    
    // 호환시킬 인터페이스를 생성자 매개변수로 받아서 멤버 변수 초기화
    public TencoAdapter(Electronic110v electronic110v) {
        this.electronic110v = electronic110v;
    }
    
    @Override
    public void connect() {
        electronic110v.connect();
    }
 
}
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class MyHouse {
    
    public static void main(String[] args) {
        
        // Electronic110v 인터페이스를 구현한 Nintendo
        Nintendo nintendo = new Nintendo();
        
        // 어댑터 패턴이 구현된 객체
        TencoAdapter adapterNintendo = new TencoAdapter(nintendo);
        
        // Electronic110v 인터페이스인 Nintendo를
        // Electronic220v 인터페이스를 매개변수로 받는 connect 메서드에 사용 가능
        connect(adapterNintendo);
        
    } // end of main
    
    public static void connect(Electronic220v electronic220v) {
        electronic220v.connect();
    }
    
// end of class
cs
320x100
반응형

댓글