본문 바로가기

계승2

이펙티브 자바 - 계승을 위한 설계, 문서화 - 이 글은 Effective Java 를 기반으로 작성되었습니다. - 개요 이전의 '계승대신 구성하라'는 규칙에서는 계승을 고려한 설계나 문서화가 되지 않은 클래스에 대해 하위 클래스 생성시 문제점을 살펴보았다. 그렇다면 '계승을 고려한 설계나 문서화'의 의미란 무엇인가? - 재정의 가능 메서드 문서 작성 재정의 가능 메서드는 non-final 인 public 이나 protected 접근제어자를 가진 메서드나 생성자를 말한다. 이들에 대해 재정의 가능 메서드의 호출 순서나 호출 결과를 문서로 남겨야 한다. 관습적으로 주석 맨 마지막 부분에 작성하며 '이 구현은~'으로 시작한다. /** * {@inheritDoc} * * This implementation iterates over the collecti.. 2021. 11. 21.
이펙티브 자바 - 계승대신 구성 - 이 글은 Effective Java 를 기반으로 작성되었습니다. - 개요 계승(extends)은 코드 재사용을 돕는 강력한 도구이지만 잘못 사용하면 S/W 가 깨지기 쉽다. 계승을 사용하기전에는 아래와 같은 사항들을 고려해보는것이 좋다. 단일 패키지내에서 상위 클래스와 하위 클래스 구현자가 같은 경우 계승을 고려해 설계되었으며 문서를 갖춘 클래스인 경우 만약 객체 생성 가능 클래스라면 해당 클래스가 속한 패키지밖에서 계승을 시도하는것은 위험하다. - 계승의 문제점 메소드 호출과 달리 계승은 캡슐화 원칙을 위반한다. 상위 클래스 A 와 이를 extends 한 하위 클래스 B가 있다고 가정해보자. 하위 클래스 B를 변경하지 않아도 release 가 거듭되면서 상위 클래스 A 의 동작이 변경되면 하위 클래.. 2021. 11. 6.