생성자
-
3. 생성자나 열거 타입으로 싱글턴임을 보증하라.백기선(인프런 강의)/이펙티브자바 2023. 7. 2. 15:58
https://github.com/rlawls1991/effective_java/tree/main/effective/src/main/kotlin/com/effective/chapter/_3 private 생성자 + public static final 필드 장점 간결하고 싱글턴임을 API에 들어낼 수 있다. 단점 싱글톤을 사용하는 클라이언트 테스트하기 어려워진다. 리플렉션으로 private 생성자를 호출할 수 있다. 단점 3, 역직렬화 할 때 새로운 인스턴스가 생길 수 있다. private 생성자 + 정적 팩터리 메서드 장점 API를 바꾸지 않고도 싱글턴이 아니게 변경할 수 있다. 정적 팩터리를 제네릭 싱글턴 팩터리로 만들 수 있다. 정적 팩터리의 메서드 참조를 공급자(Supplier)로 사용할 수 있다...
-
2. 생성자에 매개변수가 많다면 빌더를 고려하라백기선(인프런 강의)/이펙티브자바 2023. 6. 28. 13:06
빌더 패턴이란? 설명 동일한 프로세스를 거쳐 다양한 구성의 인스턴스를 만드는 방법이다. 해당 패턴을 사용하면 복잡한 객체를 만드는 프로세서를 독립적으로 분리가 가능하다. 근데.. 코틀린에서는 빌더 패턴 사용하지 않고 클래스의 생성자에 바로 매개변수를 넣어 클래스를 정의 가능.. (추가적으로 빌더 패턴을 권장하지 않음) 아래의 페이지에 코틀린으로 빌더 패턴 고려한 것과 자바코드 버전을 비교 할 수 있다. 코틀린짱 https://github.com/rlawls1991/effective_java/tree/main/effective/src/main/kotlin/com/effective/chapter/_2/hierarchicalbuilder