-
[Design Pattern] 래퍼 패턴디자인패턴 2021. 11. 22. 12:05
1. 래퍼 패턴 이란?
- 어떤 클래스의 메서드 시그내처가 맘에 안들때 다른 것 으로 바꾸는 방법
- 새로운 클래스를 만들어 기존 클래스를 감쌈
- 어댑터 패턴으로도 불림
2. 예제
외부 그래픽 라이브러리인 OpenGL 과 DirectX 의 각각 clearScreen , clear 메서드는 둘다 특정 색으로 화면을 지우는 기능을한다. 기능은 같으나 두 메서드의 시그내처가 다르므로 이를 래퍼 패턴을 적용해서 사용한다면 수정할 때 많은 수고를 덜 수 있다.
- OpenGL 을 래핑
public class Graphics { private OpenGL gl; public void clear(float r , float g , float b , float a){ this.gl.clearScreen(a , r , g ,b); } }
- DirectX 를 래핑
DirectX 의 clear메서드는 int 형 인자를 받고 순서가 다르기 때문에 그에 맞게 내부적으로 변형하여 인자를 넣어준다.
public class Graphics { private DirectX dx; public void clear(float r , float g , float b , float a){ this.dx.clear((int)(r*255),(int)(g*255),(int)(b*255),(int)(a*255)); } }
'디자인패턴' 카테고리의 다른 글
[Design Pattern] 프록시(Proxy) 패턴 (feat. 즉시로딩 vs 지연로딩) (0) 2022.02.16 [Design Pattern] 빌더 패턴 (0) 2021.12.19 [Design Pattern] 싱글턴 (feat. static) (0) 2021.12.14 [Design Pattern] 팩토리 매서드 패턴 (0) 2021.11.19