inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이펙티브 자바 완벽 공략 1부

아이템 5. 완벽 공략 14 - 팩터리 메서드 패턴

굳이 팩토리 메소드 패턴을 쓰는 이유가 뭔가요??

809

mcm1092

작성한 질문수 1

0

우선 추천해주신대로 디자인패턴 강의를 아직 수강하지는 않았습니다. (수강 예정입니다!)

이 강의에서 팩토리 메소드 패턴을 보여주셨습니다.

물론 책에서 "팩토리 메소드 방식도 적용할 수 있다"라는 문구때문에 예시를 들어주신 것 같긴한데, 이 강의에서 보여주신 예제만 보면 SpellChecker 클래스의 클라이언트가 Dictionary 인터페이스의 구현체만 주입해줘도 충분할 것 같습니다.
그런데 굳이 팩토리를 주입받고 그 팩토리로부터 Dictionary 구현체를 반환받아 자신의 Dictionary 타입의 필드에 할당하는게 조금 와닿지가 않습니다. 최대한 단순하게 예시를 들어주신거라고 이해하고는 있습니다만 궁금해서 질문드립니다.

추가) 강의 끝 부분에 객체를 생성하는 과정이 복잡할 때 사용한다고 하셨는데, 클라이언트에게 복잡한 객체를 생성하는 일을 시키지 않기 위해서...사용하는 것일수도 있겠네요.(자문자답일까요..)

디자인패턴 java 팩토리메소드

답변 1

4

백기선

그러게요. 저도 Dictionay 인터페이스만 써도 충분한 경우라고 생각합니다. 다만 책에서는 해당 아이템이 "팩토리"가 주제이다 보니, 관련 디자인 패턴을 언급했고 그래서 굳이 예제를 보여드린것 뿐이죠.

그리고 각 디자인 패턴마다 해결하려는 문제가 있는데 팩토리 메소드 패턴은 말씀하신대로 복잡한 객체를 생성하는 로직을 서브클래스에  두고 클라이언트는 인터페이스를 통해서 객체를 쓰게 하는 패턴인데요. 그런식으로 구성하면 추후에 해당 타입의 새로운 객체나 새로운 팩토리가 생겨도 클라이언트 코드를 그대로 유지할 수 있다는 장점이 있습니다. (자문자답하신게 맞습니다.)

감사합니다.

JAR파일 dependency 관련하여 질문드립니다.

0

229

2

선생님 작성한 정적 팩토리 메서드에 대해 의견 주실 수 있으실까요??

0

304

2

책에 쓰여 있는 스레드 안전에 대한 제 생각

0

295

2

프로젝트 설정 관련 질문

0

752

1

브릿지 패턴과 서비스 제공자 프레임워크 관계

0

280

1

[과제] EnumMap과 EnumSet가 HashMap과 HashSet보다 효율적인 이유

0

541

1

정적팩토리메소드와 ServiceLoader는 무슨 관계인가요?

0

346

1

강의 제목 오타 발견!!! 뚜둥

0

283

1

mvn install

1

458

1

강의 코드

0

484

2

Builder 필수값 질문입니다.

0

1043

1

Elvis, IElvis 질문이 있습니다.

0

478

1

EnumMap, EnumSet 정리

0

1000

1

HelloService 구현체

0

407

1

[과제] 강의 너무 만족스럽습니다.

0

716

1

PhantomReference 가 소멸되는 시점을 보는 코드 부분이 약간 이상한것 같습니다.

1

545

2

안녕하세요

2

682

1

객체 소멸에 관한 질문

0

543

0

정적 팩토리 메서드에 대해 질문이 있습니다.

0

541

0

Mock test 관련 질문입니다!

0

529

1

안녕하세요 선생님, 강의를 보고나서 Optional 소스코드를 뜯어보다가 어려운 부분이 있어서 질문 드립니다.

2

521

2

기선님 질문있습니다..

0

380

1

intellij의 equals 자동 생성 기능

1

520

1

Builder에 default값 추가하기

0

303

1