반응형
Theo | 테오
시행착오를 줄이는 방법 - 진태양
Theo | 테오
  • 분류 전체보기 (85)
    • General (30)
      • Essay (23)
      • Craftsmanship (3)
      • IT Meet & Hack (4)
    • Development (45)
      • News (4)
      • Architecture (4)
      • Spring Framework (7)
      • JVM (12)
      • React (0)
      • Next.js (0)
      • Web (1)
      • Git (2)
      • Algorithm (14)
      • Python (1)
    • Security (0)
      • PKI (0)
    • Infrastructure (1)
      • Kubernetes (0)
      • AWS (1)
    • Computer Science (1)
      • Network (1)
    • Civic Hacking (3)
      • Code for Korea (3)
    • Know-how (3)
      • IT Service (2)
      • Career (1)
    • Finance (1)
      • Portfolio (1)
      • Activity (0)
    • English (1)
      • Translation (1)

인기 글

블로그 메뉴

  • 홈
  • 관리
  • 방명록
hELLO · Designed By 정상우.
Theo | 테오

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

[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

    📑 간편 세금계산서 발행, 관리

    볼타: https://bolta.io

    볼타 채용: https://careers.bolta.io

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

    티스토리툴바