반응형
Heli, 헬리
시행착오를 줄이는 방법 - 진태양
Heli, 헬리
  • 분류 전체보기 (82)
    • General (28)
      • Essay (22)
      • Craftsmanship (2)
      • IT Meet & Hack (4)
    • Finance (1)
      • Portfolio (1)
      • Activity (0)
    • Infrastructure (1)
      • Kubernetes (0)
      • AWS (1)
    • Development (45)
      • News (4)
      • Architecture (4)
      • Web (1)
      • Spring Framework (7)
      • JVM (12)
      • MongoDB (0)
      • Git (2)
      • Algorithm (14)
      • Python (1)
    • Computer Science (1)
      • Network (1)
    • Civic Hacking (3)
      • Code for Korea (3)
    • Know-how (2)
      • IT Service (1)
      • Career (1)
    • English (1)
      • Translation (1)

인기 글

  • 서버 개발자, 커뮤니티 빌더의 이야기가 궁금하신분!
    2023.03.28
    서버 개발자, 커뮤니티 빌더의 이야기가 궁금하신분!
  • Why DDD, Clean Architecture and ⋯
    2022.03.10
    Why DDD, Clean Architecture and ⋯
  • [번역] 개발자가 잠자는 동안 돈을버는 5가지 방법 | 사⋯
    2022.04.17
    [번역] 개발자가 잠자는 동안 돈을버는 5가지 방법 | 사⋯
  • M1 칩에서 pyqt5 설치하기 - qmake 패스 설정
    2022.07.30
  • [Java & Kotlin] enum class가 완벽한 ⋯
    2021.12.13
    [Java & Kotlin] enum class가 완벽한 ⋯

블로그 메뉴

  • 홈
  • 관리
  • 방명록
hELLO · Designed By 정상우.
Heli, 헬리

시행착오를 줄이는 방법 - 진태양

[Effective Java] Item 1. 정적 팩토리 메소드를 고려하라
Development/JVM

[Effective Java] Item 1. 정적 팩토리 메소드를 고려하라

2021. 11. 19. 00:55
반응형

  • 일반적으로 클래스의 인스턴스를 생성할 때 public 생성자를 많이 사용한다.
  • 하지만 대부분의 primitive Type의 Boxing Class는 static factory method를 제공한다.
    public static Boolean valueOf(boolean b){
    	return b ? Boolean.TRUE : Boolean.FALSE;
    }​
  • 장점
    • 인스턴스 생성 시 이름으로 의미를 부여할 수 있다
    • 반환 타입의 하위 타입 객체를 반환할 수 있다
      • 객체 클래스를 자유롭게 선택하는 유연성을 줌
      • 인터페이스 기반 프레임워크로 만들어 줌
    • 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다
  • 단점
    • 해당 클래스를 상속하려면 public 이나 protected 생성자가 필요하기 때문에 static factory method만 사용하기는 어렵다
      • 단, 이 부분은 composition을 유도한다는 점에서 장점일 수도 있다
    • 객체를 생성하기 위한 방법을 다른 개발자가 인지하기 어려울 수 있다. 흔히 사용되는 명명(from, of)를 사용하는 것을 권장한다.
  • 결론
    • 단점보다는 이점이 더 많으므로 무작정 public 생성자를 사용하는 것에 대해 다시 한번 생각해보자.

 

Effective Java Study / 2021.11.17 / 이재성님

반응형
저작자표시 비영리 동일조건

    ☕️ Networking

    기술 직군의 기술적인 교류, 커리어 이야기, 직군 무관 네트워킹 모두 환영합니다!

    위클리 아카데미 오픈 채팅방(비밀번호: 9323)

    kakaotalk: https://open.kakao.com/o/gyvuT5Yd

    'Development/JVM' 카테고리의 다른 글
    • Effective Kotlin 출간
    • jacoco Unexpected SMAP line: *S KotlinDebug 에러
    • [Java & Kotlin] enum class가 완벽한 싱글톤이라 불리는 이유
    • 스택과 힙 메모리, 그리고 멀티 스레드
    Effective JAVA, Java, Java 꿀팁
    Heli, 헬리
    Heli, 헬리
    Java/Kotlin, Spring 백엔드 관련 기술을 익히고 공유합니다.
    [Java & Kotlin] enum class가 완벽한 싱글톤이라 불리는 이유
    다음 글
    [Java & Kotlin] enum class가 완벽한 싱글톤이라 불리는 이유
    스택과 힙 메모리, 그리고 멀티 스레드
    이전 글
    스택과 힙 메모리, 그리고 멀티 스레드

    티스토리툴바