디자인패턴
[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));
}
}