‣
과정에서 강조하는 소트웍스 앤솔러지 객체지향 생활체조원칙이라는게 있다.
여기의 규칙중 일급 컬렉션을 사용하라는 말이 있는데, 이 내용이 이번 장과 비슷한 내용을 말한다.
둘 다 결국 원시값 & 외부 코드를 포장(boxing
)하여 사용하라는 것인데, 어째서 포장을 해야하고 힘들게 포장을하면 뭐가 좋은지에 대해 말한다.
그리고 이 장에서는 소프트웨어 경계를 깔끔하게 처리하는 기법과 기교를 살펴본다.
이런 양방향의 긴장으로 인해 시스템 경계에서 문제가 생길 수 있습니다.
외부라이브러리 중 컬렉션이 있고 이중 자주쓰이는 것 중 java.util.Map
이 있다.
이 맵에서 제공하는 api만해도 clear
, containsKey
, entrySet
, equals
, .isEmpty
, keySet
, notify
, notifyAll
, put
, putAll
, remove
, size
, toString
, values
, wait
등 엄청 다양하고 많은 함수를 제공한다.
근데 만일 이 Map에 내가 필요한 객체들을 담아서 쓴다고 할 경우 이 값의 불변성이 보장될까?
private final Map<String, Car> cars = new HashMap<>();
cars.put("firstCar", new Car());