디자인 패턴 [어댑터 패턴] Adapter Pattern 개념 예제
Adapter Pattern이란?
▶ 클래스의 인터페이스를 클라이언트가 원하는 형태의 또 다른 인터페이스로 변환. 어댑터는 호환되지 않는 인터페이스 때문에 동작하지 않는 클래스들을 함께 동작할 수 있도록 만들어준다.
코드 요약
▶ linux 환경에서 사용하는 LinuxCalculator와 window 환경에서 사용하는 WindowCalculator가 있다고 가정합니다. linuxCalculator는 덧셈만을 지원하고 windowCalculator는 뺄쎔만 지원합니다. CalculatorAdapter는 linux 환경에서 windowCalculator의 뺄셈 가능을 할 수 있게 해주는 역할을 하는 Adatepr입니다.
클래스 다이어그램
1. LinuxCalculator class
public class LinuxCalculator {
public double execute(double n1, double n2){
return n1+n2;
}
}
2. WindowCalculator class
public class WindowCalculator {
public double execute(double n1, double n2){
return n1+n2;
}
}
3. CalculatorAdapter class
public class CalculatorAdapter extends LinuxCalculator{
private WindowCalculator calculator;
public CalculatorAdapter(WindowCalculator calculator) {
this.calculator = calculator;
}
@Override
public double execute(double n1, double n2) {
return calculator.execute(n1, n2);
}
}
4. Main class
public class Main {
public static void main(String[] args) {
// linux 에서 사용하는 계산기
LinuxCalculator linuxCalculator = new LinuxCalculator();
double result1 = linuxCalculator.execute(1, 2);
//window 에서 사용하는 계산기
WindowCalculator windowCalculator = new WindowCalculator();
double result2 = windowCalculator.execute(3, 4);
// linux 환경에서 window 계산기를 쓰고싶어 어뎁터를 이용해서 변경
LinuxCalculator calculatorAdapter = new CalculatorAdapter(windowCalculator);
double result3 = calculatorAdapter.execute(5, 6);
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
}
}
이처럼 기존 시스템과 요구하는 API가 같지 않을 때 Adapter를 사용하여 중간 역할을 해주는 것을 Adapter Pattern이라고 합니다. 읽어주셔서 감사합니다.
전체 코드는 아래에서 확인 가능합니다:)
https://github.com/rlaehdals/design-pattern
'Desing Pattern' 카테고리의 다른 글
디자인 패턴 [커맨드 패턴] Command Pattern 개념 예제 (0) | 2022.01.03 |
---|---|
디자인 패턴 [퍼사드 패턴] Facade Pattern 개념 예제 (0) | 2022.01.03 |
디자인 패턴 DAO Pattern 개념과 예제 (0) | 2022.01.01 |
디자인 패턴 (싱글톤 패턴) Singleton Pattern 개념과 예제 (0) | 2021.12.31 |
디자인 패턴 Factory Pattern 개념과 예제 (0) | 2021.12.30 |
댓글
이 글 공유하기
다른 글
-
디자인 패턴 [커맨드 패턴] Command Pattern 개념 예제
디자인 패턴 [커맨드 패턴] Command Pattern 개념 예제
2022.01.03 -
디자인 패턴 [퍼사드 패턴] Facade Pattern 개념 예제
디자인 패턴 [퍼사드 패턴] Facade Pattern 개념 예제
2022.01.03 -
디자인 패턴 DAO Pattern 개념과 예제
디자인 패턴 DAO Pattern 개념과 예제
2022.01.01 -
디자인 패턴 (싱글톤 패턴) Singleton Pattern 개념과 예제
디자인 패턴 (싱글톤 패턴) Singleton Pattern 개념과 예제
2021.12.31