[이펙티브 코틀린] Item32. 추상화 규약을 지켜라
·
Kotlin/이펙티브 코틀린
규약을 한쪽에서 위반할 수도 있습니다. 규약은 보증과 같으며, 규약을 위반하면 코드가 작동을 멈췄을 때 문제가 됩니다. 상속된 규약 클래스를 상속하거나, 다른 라이브러리의 인터페이스를 구현할 때는 규약을 반드시 지켜야 합니다. 규약을 지키지 않는다면, 객체가 제대로 동작하지 않을 수도 있습니다. 예를 들어 hashCode가 제대로 구현되지 않으면, HashSet과 함께 사용할 때 제대로 동작하지 않습니다. 다음 코드를 살펴보면, 원래 세트는 중복을 허용하지 않는데, equals가 제대로 구현되지 않았으므로 중복을 허용해 버립니다. class Id(val id: Int) { override fun equals(other: Any?) = other is Id && other.id == id } val set..