🎯 모든 예제 소스는 ‣에서 확인할 수 있습니다.
✅ 객체를 만들어야 할 때와 만들지 말아야 할 때를 구분하는 방법
✅ 올바른 객체 생성 방법과 불필요한 생성을 피하는 방법
✅ 제때 파괴됨을 보장하고 파괴 전에 수행해야 할 정리 작업을 관리하는 요령
클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자다.
하지만 모든 프로그래머가 꼭 알아둬야 할 기법이 하나 더 있다. 바로 그 클래스의 인스턴스를 반환하는 단순한 정적 팩터리 메서드를 제공하는 방법이다.
class ObjectManage {
companion object {
private const val DATA = "data"
private const val EMPTY = ""
fun valueOf(boolean: Boolean): String =
if (boolean) {
DATA
} else {
EMPTY
}
}
}
다음은 Boolean 객체에 따라 간단한 반환 값을 반환해 주는 정적 팩터리 메서드이다.
클래스는 클라이언트에 public 생성자 대신 정적 팩터리 메서드를 다음과 같이 제공할 수 있다.
이 방식에는 장점과 단점이 모두 존재하는데 먼저 정적 팩터리 메서드가 생성자보다 좋은 장점 다섯 가지를 알아보자.