디폴트 메서드를 너무 믿지 말고, 인터페이스를 설계할 때는 세심한 주의를 기울여야 한다
[이펙티브 자바 3/E] 아이템 21 : 인터페이스는 구현하는 쪽을 생각해 설계하라 Java8 이전에는 기존 구현체를 깨뜨리지 않고는 인터페이스에 메서드를 추가할 수 있는 방법이 없었다. Java7까지만 해도 "현재 인터페이스에 새로운 메서드가 추가될 일은 영원히 없다"고 가정하고 작성됐다고 하니 말 다했다. 만약 요구사항이 추가되면서 인터페이스에 메서드를 추가해야하는 상황이 온다면, 해당 인터페이스의 구현체 클래스를 모두 변경해야줘야한다. 이게 작은 프로그램이라면 문제가 없겠지만 해당 인터페이스를 상속 받은 클래스가 무수히 많다면.... 변경 사항이 걷잡을 수 없이 많아질 것이다. 이러한 문제를 해결하기 위해 Java8 부터는 기존 인터페이스에 메서드를 추가할 수 있는 "디폴트 메서드"가 추가되었다. ..
Backend/Java
2022. 3. 1. 21:41
공지사항
최근에 올라온 글