아이템21. 인터페이스는 구현하는 쪽을 생각해 설계하라
인터페이스에 새로운 메서드를 추가하는 방법 자바 8 이전 기존 구현체를 깨뜨리지 않고는 인터페이스에 메서드 추가할 방법이 없다. 자바 8 이후 디폴트 메서드가 추가되어 기존 인터페이스에 메서드 추가할 방법이 생겼다. 하지만 생각할 수 있는 모든 상황에서 불변식을 해치지 않는 디폴트 메서드를 작성하기란 어렵다. 디폴트 메서드의 문제점 디폴트 메서드는 (컴파일에 성공하더라도) 기존 구현체에 런타임 오류를 일으킬 수 있다. 디폴트 메서드는 인터페이스로부터 메서드를 제거하거나 기존 메서드의 시그니처를 수정하는 용도로 사용한다면 반드시 기존 클라이언트를 망가뜨리게 된다. 결론 기존 인터페이스에 디폴트 메서드로 새 메서드를 추가하는 일은 꼭 필요한 경우가 아니면 피해야 한다. 디폴트 메서드라는 도구가 생겼더라도 인..
책/이펙티브자바
2021. 8. 24. 11:50
링크
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- java
- 패스트캠퍼스 컴퓨터공학 완주반
- 이펙티브자바 아이템60
- http
- 프로그래머스 SQL
- 드림코딩
- Spring Security
- js promise
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- REST API
- HTTP 완벽가이드
- js array
- 이펙티브자바 스터디
- BOJ
- JPA 연관관계 매핑
- 이펙티브자바
- 김영한 JPA
- 킹수빈닷컴
- 이펙티브자바 아이템59
- 프로그래머스
- 모던자바스크립트
- HTTP 완벽 가이드
- JS 딥다이브
- 김영한 http
- 백기선 스터디
- js api
- dreamcoding
- GCP
- ㅇㄷㅇㅈ
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함