-
자바 이펙티브 - 1. 들어가기Java/이펙티브 자바 2022. 6. 10. 15:53
명료성( clarity ) 과 단순성( simplicity )
- 컴포넌트는 사용자를 놀라게 하는 동작을 해서는 절대 안된다
( 정해진 동작이나 예측할 수 있는 동작만 수행해야 한다 )
- 컴포넌트는 가능한 한 작되, 그렇다고 너무 작아서는 안된다
( 이 책에서 컴포넌트란 개별 메서드부터 여러 패키지로 이뤄진 복잡한 프레임워크까지
재사용 가능한 모든 소프트웨어 요소를 뜻한다 )
- 코드는 복사되는 게 아니라 재사용되어야 한다.
- 컴포넌트 사이의 의존성은 최소로 유지해야한다.
- 오류는 만들어지자마자 가능한 한 빨리 (되도록 컴파일 타임에) 잡아야 한다.
자바가 지원하는 타입
1. 인터페이스 ( interface )
2. 클래스 ( class )
3. 배열 ( array )
4. 기본 타입 ( primitive )
- 애너테이션 ( annotation ) 은 인터페이스의 일종이며 열거 타입 ( enum ) 은 클래스의 일종이다.
- 4가지 타입 중 처음 3가지는 참조 타입 ( reference type ) 이라 한다.
- 즉, 클래스의 인스턴스와 배열은 객체인 반면, 기본 타입 값은 그렇지 않다
- 클래스의 멤버로는 필드 ( field ), 메서드 ( method ), 멤버 클래스, 멤버 인터페이스가 있다.
- 메서드 시그니처는 메서드 이름과 입력 매개변수 ( parameter )의 타입 들로 이뤄진다.
( 반환 값의 타입은 시그니처에 포함되지 않는다 )
이 책에서의 용어
- 상속 ( inheritance ) 을 서브클래싱 ( subclassing ) 과 동의어로 쓴다
- 인터페이스 상속 대신 " 클래스가 인터페이스를 구현한다 ( implement ) " 혹은 " 인터페이스가 다른 인터페이스를 확장한다 ( extend ) " 라고 표현한다.
- 아무것도 명시하지 않은 접근 수준 ( access level ) 을 이야기할 때는 ( 기술적으로 정확한 이름인 ) 패키지 접근 ( package acess ) 대신 전통적인 패키지-프라이빗 ( package-private )을 쓴다.
- 공개 API ( exported API ) , 줄여서 API ( Application Programming Interface ) 는 프로그래머가 클래스, 인터페이스, 패키지를 통해 접근할 수 있는 모든 클래스, 인터페이스, 생성자, 멤버, 직렬화된 형태 ( serialized form )를 말한다.
'Java > 이펙티브 자바' 카테고리의 다른 글
아이템5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 (0) 2022.11.01 아이템4. 인스턴스화를 막으려거든 private 생성자를 사용하라 (0) 2022.11.01 아이템3. 생성자나 열거 타입으로 싱글턴임을 보증하라 (0) 2022.10.31 아이템2. 생성자에 매개변수가 많다면 빌더를 고려하라 (0) 2022.10.31 아이템1. 생성자 대신 정적 팩터리 메서드를 고려하라 (0) 2022.10.28