디자인 패턴 [어댑터 패턴] 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
GitHub - rlaehdals/design-pattern
Contribute to rlaehdals/design-pattern development by creating an account on GitHub.
github.com
'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
댓글을 사용할 수 없습니다.