delpho

[Java] 팩토리 메서드 패턴에 대해서 설명해주세요. 본문

CS/Java

[Java] 팩토리 메서드 패턴에 대해서 설명해주세요.

delpho 2022. 9. 7. 10:00

_1. 

[ 팩토리 패턴 (Factory Pattern) ]

  • 객체 생성 처리를 서브 클래스로 분리 해 처리하도록 캡슐화하는 패턴
    • 객체의 생성 코드를 별도의 클래스/메서드로 분리함으로써 객체 생성의 변화에 대비하는 데 유용하다.
  • 팩토리 메소드 패턴, 추성 팩토리 패턴이 있다.

 

 

_2. 

그럼 팩토리 메소드 패턴과 추상 팩토리 패턴의 차이는 뭔데?

 

출처 https://dev-youngjun.tistory.com/195

 

 

 

 

_3. 

[ 팩토리 메서드 패턴 (Factory Method Pattern) ]

  • 부모(상위) 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며. 자식(하위) 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴

 

 

_4. 

[ 사용 이유 ]

 객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브클래스에서 이루어지도록 하여 재정의 가능한 것으로 설계 하지만, 복잡해지지 않게 한다.

  • 생성할 객체 타입을 예측할 수 없을 때
  • 생성할 객체를 기술하는 책임을 서브클래스에게 정의하고자 할 때
  • 객체 생성의 책임을 서브클래스에 위임시키고 서브클래스에 대한 정보를 은닉하고자 할 때

 

 

_5. 

[ 장점 ]

  • Creator와 Product 간의 결합이 느슨
  • 코드 간결
  • 병렬적 클래스 계층도를 연결하는 역할을 담당

 

 

[ 단점 ]

  • 클래스가 많아진다
  • 클라이언트가 creator 클래스를 반드시 상속해 Product를 생성해야한다

 

 

_6. 

팩토리 메소드 패턴을 사용하는 이유는 클래스간의 결합도를 낮추기 위한 것 같다.
결합도라는 것은 간단히 말해 
클래스의 변경할 부분이 생겼을 때 얼마나 다른 클래스에도 영향을 주는가이다. 팩토리 메소드 패턴을 사용하는 경우 직접 객체를 생성해 사용하는 것을 방지하고 서브 클래스에 위임함으로써 보다 효율적인 코드 제어를 할 수 있고 의존성을 제거한다. 결과적으로 결합도 또한 낮출 수 있다.

 

 

 


출처

https://gmlwjd9405.github.io/2018/08/07/factory-method-pattern.html

 

[Design Pattern] 팩토리 메서드 패턴이란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://dev-youngjun.tistory.com/195

 

팩토리 메소드 패턴(Factory Method Pattern)

1. 팩토리 메소드 패턴이란? 다양한 구현체 (Product)가 있고, 그 중에서 특정한 구현체를 만들 수 있는 다양한 팩토리(Creator)를 제공할 수 있다. 1-1. 정의(Definition) 1-1-1. 팩토리 패턴? 객체의 생성

dev-youngjun.tistory.com