• 카테고리

    질문 & 답변
  • 세부 분야

    기타 (개발 · 프로그래밍)

  • 해결 여부

    미해결

Factory Pattern 질문입니다.

21.01.05 00:16 작성 조회수 204

0

Factory Pattern에서 각 객체들의 인터페이스들을 만들기 어렵기 때문에 내부에 Factory 클래스를 생성한다고 하셨습니다. 그렇게 되면 결합도는 높아진다고 하셨는데 그러면 안드로이드에서 팩토리 패턴을 사용하는 정확한 이유가 뭔가요? 결합도를 낮추는 것도 아닌데 사용하는 궁극적인 목표가 궁금합니다

답변 3

·

답변을 작성해보세요.

3

아. 죄송합니다. 위에 제가 빌더 패턴 얘기를 하고 있었네요.

영상 다시 보고 답변 다시 답니다.

원래 Factory 패턴은 인터페이스나 추상 클래스로 선언하고 내부에서는 뭐가 생성될지 모르게 하는게 정석이라고 생각합니다.

Android 에서는 Fragment 생성할 때 이렇게 합니다.

이렇게 하면 실제 생성되는 XXXFragment는 import 하지 않아도 되니까 결합도가 낮아지지요.

그런데 안드로이드 프레임워크에서는 이 영상의 IDCard 와 같은 형태의 팩토리들을 제공하는 클래스가 많이 있습니다.

해당 클래스 자체를 생성만 하는 거지요.

그래서 여러 타입을 생성할 수 있을 경우는 인터페이스나 추상 클래스로 선언해서 받으면 되고,

객체 하나만 만들 때는 굳이 인터페이스나 추상 클래스를 만들지 말고 그냥 해당 클래스로 바로 생성할 수 있으니

두 경우를 소개한 것이고요.

Factory건 Builder건 궁극적인 목표는 객체 생성입니다.

제 생각은 역시 패턴에 정답은 없다. 상황에 따라 응용 하면 된다가 결론입니다.

1

Factory는 객체 생성을 위한 공장입니다.

Android 에서 Factory 패턴이 많이 쓰이는 이유는 몇 가지 옵션으로 조립하여 객체를 생성할 일이 많기 때문입니다.

특히 다이얼로그 같은 경우 몇 가지 옵션을 준비해서 조합해서 객체를 만들 일이 많은데 생성자만으로는 한계가 있지요.

결합도나 그런 이유 때문은 아니고요. 패턴도 여러가지 변형이 있고 이거다 하는 정답은 없습니다. 상황에 맞게 응용할 뿐이지요.

0

하잉님의 프로필

하잉

질문자

2021.01.05

안녕하세요 말씀하신내용은 builder 패턴 아닌가요? 다이얼로그에 builder패턴을 사용하는것으로 알고 있어서요