디자인패턴

[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));
    }
}