inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

일급 컬렉션

정적 팩토리 메소드 사용 이유

361

아자

작성한 질문수 13

1

객체지향 리팩토링 클린코드-기획전

답변 2

0

박우빈

안녕하세요, Doobie 님!

기본적으로는 생성 의도를 전달할 수 있다는 장점이 가장 큰데요!
(개인적으로) 정적 팩토리 메서드에 비해 new 키워드가 가독성이 조금 더 떨어진다고 생각해서 그렇습니다.
추가적으로, 만약 여러 상황에서 파라미터만 조금씩 다르게 인스턴스를 생성해주고 싶을 때, 여러 이름을 가진 정적 팩토리 메서드들을 통해 그 의도를 전달하면서 인스턴스를 생성하도록 할 수도 있습니다.

강의에서도 이야기하지만, 일반 생성자를 통해 인스턴스를 생성하는 방식이 나쁘다고는 전혀 생각하지 않습니다 ㅎㅎ
객체를 new로 만들던 of()로 만들던, 가장 중요한 건 전체 코드의 흐름과 의도를 명확히 전달하는 것이니까요!

감사합니다 🙂

0

인프런 AI 인턴

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

Doobie님께서는 생성자를 감추고 정적 팩토리 메소드를 사용하는 이유에 대해 궁금해 하시는군요. 이에 대해 답변드릴 수 있는 유사한 질문과 그 답변들을 소개합니다.

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

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

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

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

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

[강의 질문] 메서드 선언부

0

90

1

[강의 질문] 메서드와 추상화

0

61

2

DIP 개념에 대한 질문입니다.

0

64

1

만약 보드를 이용한 게임의 종류가 더 다양해진다면 어떻게 될 수 있을지에 대한 고민

0

86

2

DIP 설명 후반부에 IOC에 대한 질문 드립니다.

0

80

2

안녕하세요 ! 혹시 자바가 아닌 다른 객체지향 언어를 알고있어도 강의를 들어도 괜찮을까요 ?!

0

71

1

안녕하세요 메서드명 때문에 고민이 있어서 질문드립니다.

1

64

2

자바 record 사용에 대해서 질문 드립니다!

0

128

2

강의 내용 정리 및 자료 제작 툴 문의 드립니다.

0

136

2

사용할 변수 가깝게 선언하기 질문

0

93

1

오버 엔지니어링

0

151

2

학습용 java/spring 오픈소스 추천

1

368

2

중복된 메서드 줄이는 방법

0

185

2

MarketPlace에서 Sonarlint 검색이 안됩니다.

0

417

3

isLandMineCell() 메서드 질문

0

209

1

Cell[][]BOARD 매개변수받기

0

153

2

ConsoleInputHandler에서 왜 final붙여야 하는지

0

194

1

정적 생성자 메서드 of, from

0

266

2

Getter관해서

0

148

3

이름 바꾸기

0

129

2

stack 대신 queue 를 사용해 bfs 로 변경해도 되나요??

0

164

2

현업에서 ISP를 도입하려는데 인터페이스 설계에 있어서 의문이 있습니다.

0

208

2

null을 가질 수 있는 값을 인자로 넘겨야 하는 경우

0

253

3

리팩토링을 하고 난 뒤 다시보면 오히려 더 복잡해 보이는것 같은 느낌입니다..

0

255

2