wookcode

item 8. finalizer와 cleaner 사용을 피하라

Finalizer 와 cleaner 는 예측할 수 없고, 느리고 일반적으로 불필요하다. 왜 사용되지 않는지 단점들을 알아보자. 즉시 수행된다는 보장이 없다. finalizer와 cleaner는 즉시 수행된다는 보장이 없기 때문에, 제때 실행되어야 하는 작업은 절대 할 수 없다. 수행 여부조차 보장하지 않는다. 수행 여부조차 보장하지 않는다. ...

item 3. 생성자나 열거 타입으로 싱글턴임을 보증하라

싱글턴이란? 싱글턴이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 그런데 클래스를 싱글턴으로 만들면 이를 사용하는 클라이언트를 테스트하기가 어려워질 수 있다. 왜냐하면 타입을 인터페이스로 정의한 다음 그 인터페이스를 구현해서 만든 싱글턴이 아니라면 싱글턴 인스턴스를 가짜(mock) 구현으로 대체할 수 없기 때문이다. 다음으로 싱글턴...

item 2. 생성자에 매개변수가 많다면 빌더를 고려하라

정적 팩터리와 생성자에 제약 정적 팩터리와 생성자에는 똑같은 제약이 하나있다. 선택적 매개변수가 많을때 적절히 대응하기 어렵다는 점이다. 매개변수가 20가지가 넘어가고 필수 매개변수와 선택 매개변수가 있을때 보통 점층적 생성자 패턴을 사용했었다. 점층적 생성자 패턴 필수 매개변수를 받는 생성자 1개, 그리고 선택 매개변수를 하나씩 늘려가며 생성...