아이템 32 추상화 규약을 지켜라
- 규약은 개발자들 간의 합의이기에 규약을 위반하는 경우도 존재한다.
- ex)
private
프로퍼티를 리플렉션으로 열고 사용한다면?
- 할 수 있다는 것이 그것을 해도 괜찮다는 의미는 아니다.
- 규약을 위반하면 코드가 작동을 멈췄을 때 문제가 된다.
상속된 규약
- 클래스를 상속하거나 다른 라이브러리의 인터페이스를 구현할 때도 규약을 반드시 지켜야 한다.
- ex) 모든 클래스는
equals
와 hashCode
를 오버라이드 하여 제대로 구현해야 한다.
- 만약
hasCode
가 제대로 구현되지 않은 경우 HashSet
의 요소 등에 사용될 때 중복 체크가 제대로 수행되지 않아 버그가 발생해버린다.
정리
- 프로그램을 안정적으로 유지하려면 규약을 지켜야 한다.
- 규약을 깰 수밖에 없다면 잘 문서화해야 한다.