Java/Design Pattern

Factory Pattern (팩토리 패턴)

SeongWon 2022. 1. 27. 16:09
반응형

Factory Pattern (팩토리 패턴) 이란?

가장 유명한 디자인 패턴 중 하나인 팩토리 패턴은 구체적인 용어로, 팩토리 메서드 패턴(Factory Method Pattern)으로도 널리 알려져 있다.

 

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

 

팩토리 패턴에서는 클래스의 인스턴스를 만드는 시점을 서브 클래스로 미룬다.

이 패턴은 인스턴스화에 대한 책임을 객체를 사용하는 클라이언트에서 팩토리 클래스로 가져온다.

 

 

▶ 팩토리 패턴의 유용성

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

▶ 장점

  1. 팩토리 패턴은 클라이언트 코드로부터 서브 클래스의 인스턴스화를 제거하여 서로 간의 종속성을 낮추고, 결합도를 느슨하게 하며, 확장을 쉽게 한다.
  2. 팩토리 패턴은 클라이언트와 구현 객체들 사이에 추상화를 제공한다.

 


※ 생성 패턴 (Creational Pattern)

- 팩토리 패턴은 생성 패턴 중 하나이다.

 

생성 패턴은 인스턴스를 만드는 절차를 추상화 하는 패턴이다.

생성 패턴에 속하는 패턴들은 객체를 생성, 합성하는 방법이나 객체의 표현 방법을 시스템과 분리해준다. 

생성 패턴은 시스템이 상속보다 복합 방법을 사용하는 방향으로 진화되어 가면서 더 중요해지고 있다.

 

▶ 생성 패턴의 이슈

  • 생성 패턴은 시스템이 어떤 Concreate Class를 사용하는지에 대한 정보를 캡슐화 한다.
  • 생성 패턴은 이들 클래스의 인스턴스들이 어떻게 만들고, 어떻게 결합하는지에 대한 부분을 완전히 가려준다.

즉, 생성 패턴을 이용하면 무엇이 생성되고, 누가 이것을 생성하며, 이것이 어떻게 생성되는지, 언제 생성할 것인지 결정하는 데 유연성을 확보할 수 있게 된다.

반응형