본문 바로가기
학습 log (이론)/java

'java api' 기초 #1

by abbear25 2016. 11. 27.

필요이상으로 노출하지마라

usecase를 작성해본 뒤 적합하다면 메소드로 제공하라

실력이 부족할수록 API가 장황해진다


1.메서드가 필드보다 낫다

getter, 접근자

늦은 초기화, 접근 동기화, 계산적인 알고리즘을 이용해 값을 조정

setter, 설정자

할당된 값이 올바른지 검사, 변경된 값 리스너로 전달

필드는 옮길 수 없지만 메서드는 상위 클래스로 옮겨도 유지됨

public static final, 문자열 상수, enum 값, 불변 객체 외에는 노출 금지


2.생성자보다 팩터리가 낫다 (싱글톤 패턴)

대상 클래스의 하위 클래스를 반환, 다형성을 통해 코드를 깔끔하게 정리 가능

인스턴스화했던 객체를 캐싱하여 재사용함으로 메모리 절약, 인스턴스 캐싱

메서드를 효율적으로 동기화가능


3.모든 것을 final로 만들어라

서브 클래싱 금지


4.어울리지 않는 곳에 설정자 메서드를 넣지 마라


5.friend 코드에서만 접근하는 것을 허용하라

API에서 너무 많은 것들을 노출하지 않으려고 할 때 유용한 기법


6.객체를 만든 이에게 더 많은 권한을 부여하라


7.깊은 계층구조를 노출하지 마라



반응형