지금의 Dollar
객체같이 객체를 값 처럼 쓸 수 있는데, 이것을 **값 객체 패턴 (value object pattern)**이라고 한다.
값 객체에 대한 제약사항 중 하나는 객체의 인스턴스 변수가 생성자를 통해서 일단 설정된 후에는 결코 변하지 않는다는 것이다.
값 객체의 또 다른 장점 : 별칭 문제에 대해 걱정할 필요가 없다.
($5 수표가 영원히 $5임을 보장 받을 수 있다. 변경될 가능성이 없다.)
값 객체가 암시하는 것
equals()
를 구현해야 한다는 것. → hashCode()
같이 구현해야 함.[목록]
@Test
void testEquality() {
assertThat(new Dollar(5)).isEqualTo(new Dollar(5));
}