디자인패턴 (Design Pattern)
- 객체 지향 특성과 설계 원칙을 기반으로 구성됨
- 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하며 만들어진 해결책 중 많은 이들이 인정한 방식으로 정리한 것
어댑터 패턴 (Adapter Pattern)
어댑터를 직역하자면 변환기이며, 이 패턴 또한 마찬가지로 서로 다른 두 인터페이스 사이 통신이 가능하게 한 것이다. 즉, 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 전환한 것이다. 고로 어댑터 패턴을 이용하면 호환성 문제로 같이 쓸 수 없는 클래스를 연결해서 사용할 수 있다.
대표적인 예시로 ODBC와 JDBC, JVM이 존재한다. 어댑터 패턴 또한 확장에는 열려있으나, 변경에는 닫혀있어 SOLID 원칙 중 OCP을 따른다고 보면 된다.
현재 학습하는 책에서의 Adapter pattern 예제는 다음과 같다.
클라이언트는 어댑터를 통해 Service 클래스 객체에 접근할 수 있다.
즉, 클라이언트랑 구현된 인터페이스를 분리시킬 수 있으며, 향후 인터페이스가 변경되어도 변경내역은 어댑터에 캡슐화 되어 클라이언트는 변경될 필요가 없다.
이는 Class로 구현했기에 '어댑터 패턴' 정의에 맞추어 새로 코드를 작성해보겠다.
어댑터 패턴 장점
- 자바는 다중상속을 지원하지 않는다. 어댑터 패턴을 사용하면 상속받지 않는 인터페이스에 접근할 수 있다.
즉, 호환성 문제를 해결할 수 있다. - 클래스 재사용성이 증가한다.
++ 어댑터 패턴 적용 예시를 정말 잘 보여주는 글을 발견!
'Development > Spring Framework' 카테고리의 다른 글
스프링디자인패턴(4) 싱글턴 패턴 - Singleton Pattern (0) | 2021.04.02 |
---|---|
스프링 삼각형과 설정 정보 (2) AOP (0) | 2021.03.28 |
스프링 삼각형과 설정 정보 (1) IoC/DI (0) | 2021.03.28 |
스프링디자인패턴(3) 데코레이터 패턴 - Decorator Pattern (0) | 2021.03.25 |
스프링디자인패턴(2) 프록시 패턴 - Proxy Pattern (0) | 2021.03.24 |