인터페이스 설계
-
[Effective Java] 아이템21: 인터페이스는 구현하는 쪽을 생각해 설계하라Language/Java 2022. 7. 14. 15:47
자바 8 전에는 기존 구현체를 깨뜨리지 않고는 인터페이스에 메서드를 추가할 방법이 없었으나,자바 8 부터는 디폴트 메서드가 소개되면서 기존 인터페이스에 메서드를 추가할 수 있게 되었다. 그러나 이렇게 추가된 디폴트 메서드가 모든 기존 구현체들과 매끄럽게 연동되리라는 보장은 없다. ✔️ 디폴트 메서드 추가 시 주의사항 1️⃣ 디폴트 메서드는 컴파일에 성공하더라도 기존 구현체에 런타임 오류를 일으킬 수 있다. 흔한 일은 아니지만, 일어나지 않으리라는 보장도 없다. 2️⃣ 기존 인터페이스에 디폴트 메서드로 새 메서드를 추가하는 일은 꼭 필요한 경우가 아니면 피해야 한다. 추가하려는 디폴트 메서드가 기존 구현체들과 충돌하지 않을지 심사숙고해야 한다. 또한, 메서드를 제거하거나 기존 메서드의 시그니처를 수정하는 ..