상속을 고려해 설계하고 문서화하라. 그렇지 않다면 상속을 금지하라 상속을 염려해두지 않은 외부 클래스(프로그래머의 통제권 밖에 있어 변경시점을 알 수 없는 클래스)를 상속할 경우 여러 문제가 발생할 수 있습니다. 그렇기 때문에 상속용 클래스를 설계할 때는 문서화가 중요합니다. 상속을 고려한 설계와 문서 상속용 클래스는 재정의할 수 있는 메서드들을 내부적으로 어떻게 이용되는지 문서로 남겨야 합니다. 호출된 메서드가 재정의 가능한 메서드라면 즉, 하위 클래스의 메서드라면 그 사실을 호출한 메서드의 API에 설명을 적시해야 합니다. 더불어 어떤 순서로 호출하는지, 각각의 호출 결과가 어떻게 이어지는지, 처리는 어떻게 되는지 등 모든 상황을 적시해야 합니다. 여기서 재정의 가능 메서드란 public, prote..

상속보다는 컴포지션을 사용하라 여기서 말하는 상속은 클래스가 다른 클래스를 확장하는 상속을 말합니다. 그렇기 때문에 클래스가 인터페이스를 구현하거나 인터페이스가 다른 인터페이스를 확장하는 상속과는 무관합니다. 상속을 사용하게 되면 메서드 호출과 달리 캡슐화를 깨뜨립니다. 다르게 말하면 상위 클래스가 어떻게 구현되느냐에 따라 하위 클래스의 동작에 이상이 생길 수 있으며, 상위 클래스는 릴리즈마다 내부 구현이 달라질 수 있어서 그 여파로 하위 클래스가 오작동할 수 있습니다. 컴포지션이란 다른 클래스에서 상위 클래스를 private 필드로 작성해 참조하도록 하여 기존 상위 클래스가 다른 클래스의 구성 요소로 쓰인다는 의미입니다. 🧨 문제가 발생하는 예제 아래 예제를 실행 했을 때 결과는 3이 나올것 같지만 실..
- Total
- Today
- Yesterday
- @ControllerAdvice
- java userThread와 DaemonThread
- transactional outbox pattern
- spring boot redisson 분산락 구현
- polling publisher spring boot
- microkernel architecture
- space based architecture
- 레이어드 아키텍처란
- spring boot redis 대기열 구현
- 공간 기반 아키텍처
- spring boot redisson sorted set
- spring boot excel download paging
- spring boot excel download oom
- 자바 백엔드 개발자 추천 도서
- 람다 표현식
- 서비스 기반 아키텍처
- redis 대기열 구현
- pipe and filter architecture
- service based architecture
- 트랜잭셔널 아웃박스 패턴 스프링부트
- spring boot 엑셀 다운로드
- JDK Dynamic Proxy와 CGLIB의 차이
- redis sorted set으로 대기열 구현
- spring boot poi excel download
- redis sorted set
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- java ThreadLocal
- pipeline architecture
- transactional outbox pattern spring boot
- spring boot redisson destributed lock
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |