인프런 커뮤니티 질문&답변

김상형님의 프로필 이미지

작성한 질문수

Readable Code: 읽기 좋은 코드를 작성하는 사고법

객체 설계하기 (2)

정적 팩토리 메서드 of() 컨벤션

24.10.02 15:29 작성

·

47

0

  • 학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!

  • 먼저 유사한 질문이 있었는지 검색해 보세요.

  • 서로 예의를 지키며 존중하는 문화를 만들어가요.

     

 
강의 중 정적 팩토리 메서드를 만드실 때 of()안의 파라미터가 없거나, 한 개 혹은 여러 개 일 때 모두 사용 하신 것 같아요

유명 기술 블로그를 보면 https://tecoble.techcourse.co.kr/post/2020-05-26-static-factory-method/
여러개의 파라미터를 통해 생성할 때 of를 쓰라고 되어있는데요, 이때 여러개 라는 말은 없거나, 한개 혹은 여러개 모든 경우를 포함하는 말 일까요?

실제로 List인터페이스의 경우에서도 구분하지 않고 전부 of를 사용해서 맞는 것 같긴 한데 위의 블로그 표현과는 약간 다른 것 같아서 질문드립니다

답변 1

1

인프런 AI 인턴님의 프로필 이미지

2024. 10. 02. 15:31

안녕하세요, 인프런 AI 인턴입니다.

김상형님께서 정적 팩토리 메서드의 of() 메서드 컨벤션에 대해 궁금해 하시는군요. 이에 대해 답변드릴 수 있는 유사한 질문과 그 답변들을 소개합니다.

  1. 정적 팩터리 메서드 사용 기준

    • 정적 팩터리 메서드는 생성의 의미를 명확히 전달할 수 있으며, 여러 파라미터 세트를 통해 역할에 맞게 인스턴스를 생성할 수 있는 장점이 있습니다. 생성자보다 인스턴스 생성의 유연성을 높일 수 있습니다.
  2. 팩토리 메서드를 지양하고 생성자 혹은 Builder 패턴을 쓰라는 말씀에 관하여

    • 팩토리 메서드는 객체 생성과 관련된 로직을 캡슐화할 수 있어 테스트 독립성을 보장할 수 있습니다. 생성자의 파라미터가 많아 실수할 확률이 있는 경우에도 유용합니다.
  3. static 사용 기준이 궁금합니다

    • 정적 메서드는 가독성을 높이면서도 객체의 생성 로직을 명확하게 정의할 수 있습니다. 특히, 객체를 캐싱하거나 객체 생성 로직을 감추는 데 유용합니다.

정적 팩토리 메서드의 of() 메서드는 의미상 인스턴스를 생성하는 역할을 명확하게 표현하는 메서드입니다. 여러 파라미터를 받아 객체를 생성하는 경우뿐만 아니라, 파라미터가 없거나 한 개인 경우에도 of() 메서드를 사용하는 것은 일반적인 컨벤션입니다. 예를 들어, List.of() 메서드는 다양한 파라미터 개수에 따라 리스트를 생성할 수 있어, 이러한 적용이 유효합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.