시스템에 들어가는 소프트웨어를 모두 개발하는 경우는 거의 없다. 즉 외부 라이브러리를 사용하게 되는데 소포트웨어 간의 경계를 깔끔하게 하는 방법들이다.
인터페이스 제공자와 사용자 사이에는 긴장이 존재한다
이러한 이해관계의 대립의 경계선에서 문제가 생길 수 있다.
java.util.Map은 다양한 인터페이스를 가지고 있고 편리성을 준다. 하지만 Map의 clear를 사용해서 사용자가 마음대로 Map 내용을 삭제할 수 있다. 반대로 추가도 가능해진다.
public class Sensors {
private Map sensors = new Hashmap();
public Sensor getById(string id) {
return (sensor) sensors.get(id);
}
}
위의 경우는 Map을 sensors 라는 객체로 감쌌기에 Map 인터페이스가 변하더라도 프로그램에는 영향을 주지 않는다.
타사 라이브러리를 가져왔을 때 사용법이 분명하지 않다면
의 과정을 거쳐야한다.
학습테스트는 드는 비용은 없지만 지식만을 확보할 수 있는 가장 손쉬운 방법이다.
이와 같이 깨끗한 경계는 향후 변경으로 인핸 비용을 줄일 수 있다!