예) java.util.Map
public class Sensors {
private Map sensors = new HashMap();
public Sensor getById(String id) {
return (Sensor) sensors.get(id);
}
...
}
외부 API를 별개의 Wrapper 클래스로 캡슐화하는 방법을 새로 알게 되었다. 필요할 때마다 직접적으로 호출하기보다는, 기능을 Wrapper 클래스 안에 정의하고 그 안에서만 외부 API를 활용하는 것이 바람직한 것 같다.
자바에서 기본적으로 제공하는 인터페이스조차도 언제든 변경될 수 있으니, 항상 캡슐화에 신경을 써야 한다는 점이 인상깊었다. 나 역시 콜렉션 패키지를 사용할 때 당연하게 Generics로 타입을 지정하고 여기저기서 쓰고는 했는데, 캡슐화하는 방법을 시도해봐야 겠다는 생각이 들었다. 또, HTTP Response Body에 Map으로 객체를 담아 보내는 것을 종종 보았는데, 이렇게 공개 API의 인수로 넘기는 부분은 어떻게 바꾸는 것이 좋은지 궁금하다. 직접 구현해보며 최선의 방법을 찾아봐야겠다.