클래스를 활용해 리팩터링하기
리팩터링할 때 취할 수 있는 접근 방법은 많다(아이템 123 “리팩터링과 마이그레이션 방법을 알려주기 위해 warnings를 사용하라”에서 예제를 볼 수 있다). 여기서는 먼저 의존성 트리의 맨 밑바닥, 즉 점수를 표현하는 클래스부터 시작할 수 있다. 하지만 이런 단순한 정보를 표현하는 클래스를 따로 만드는 것은 너무 비용이 많이 드는 것 같다. 게다가 점수는 불변(immutable) 값이기 때문에 튜플이 더 적당해 보인다. 여기에서는 리스트 안에 점수를 저장하기 위해 (점수, 가중치) 튜플을 사용한다.