디자인 패턴/생성 패턴

Factory 패턴

언린이 2021. 9. 18. 11:54

Factory 패턴은 객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만들 클래스의 결정은 서브 클래스 쪽에서 내리는 패턴입니다. 다시 말해 여러 개의 서브 클래스를 가진 슈퍼 클래스가 있을때 인풋에 따라 하나의 자식 클래스의 인스턴스를 리턴해주는 방식입니다.

이렇게 Factory 패턴에서는 클래스의 인스턴스를 만드는 시점을 서브 클래스로 미루고 인스턴스화에 대한 책임을 객체를 사용하는 클라이언트에서 Factory 클래스로 가져옵니다.

 

 

활용 상황

  • 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을때 유용합니다.
  • 생성할 객체를 기술하는 책임을 자신의 서브 클래스가 지정했으면 할때 유용합니다.

 

 

Factory 패턴의 장단점

  • 장점
    • 객체를 생성하는 코드를 분리하여 클라이언트 코드와 결합도(의존성)를 낮춥니다.
      • 코드에 변경이 필요할시, 객체 생성 클래스만 수정하면 됩니다.
    • 인터페이스를 바탕으로 유연성과 확장성이 뛰어난 코드 제작이 가능합니다.
    • 객체의 자료형이 서브 클래스에 의해서 결정됩니다.
      • 확장에 용이합니다.
      • 슈퍼 클래스에서 그 객체에 대한 정확한 타입을 몰라도 됩니다.
  • 단점
    • 새로 생성할 객체의 종류가 늘어날때마다 클래스가 많아집니다.

'디자인 패턴 > 생성 패턴' 카테고리의 다른 글

Prototype 패턴  (0) 2021.09.28
Singleton 패턴  (0) 2021.09.25
Abstract Factory 패턴  (0) 2021.09.23
Builder 패턴  (0) 2021.09.14