MyPrograming
Factory Pattern (팩토리 패턴) 본문
반응형
Factory Pattern (팩토리 패턴) 이란?
가장 유명한 디자인 패턴 중 하나인 팩토리 패턴은 구체적인 용어로, 팩토리 메서드 패턴(Factory Method Pattern)으로도 널리 알려져 있다.
팩토리 패턴은 객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만들 클래스의 결정은 서브 클래스 쪽에서 내리는 패턴이다. 즉 여러 개의 서브 클래스를 가진 슈퍼 클래스가 있을 때, input에 따라 하나의 자식 클래스의 인스턴스를 return 해주는 방식이다.
팩토리 패턴에서는 클래스의 인스턴스를 만드는 시점을 서브 클래스로 미룬다.
이 패턴은 인스턴스화에 대한 책임을 객체를 사용하는 클라이언트에서 팩토리 클래스로 가져온다.
▶ 팩토리 패턴의 유용성
- 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때
- 생성할 객체를 기술하는 책임을 자신의 서브 클래스가 지정했으면 할 때
▶ 장점
- 팩토리 패턴은 클라이언트 코드로부터 서브 클래스의 인스턴스화를 제거하여 서로 간의 종속성을 낮추고, 결합도를 느슨하게 하며, 확장을 쉽게 한다.
- 팩토리 패턴은 클라이언트와 구현 객체들 사이에 추상화를 제공한다.
※ 생성 패턴 (Creational Pattern)
- 팩토리 패턴은 생성 패턴 중 하나이다.
생성 패턴은 인스턴스를 만드는 절차를 추상화 하는 패턴이다.
생성 패턴에 속하는 패턴들은 객체를 생성, 합성하는 방법이나 객체의 표현 방법을 시스템과 분리해준다.
생성 패턴은 시스템이 상속보다 복합 방법을 사용하는 방향으로 진화되어 가면서 더 중요해지고 있다.
▶ 생성 패턴의 이슈
- 생성 패턴은 시스템이 어떤 Concreate Class를 사용하는지에 대한 정보를 캡슐화 한다.
- 생성 패턴은 이들 클래스의 인스턴스들이 어떻게 만들고, 어떻게 결합하는지에 대한 부분을 완전히 가려준다.
즉, 생성 패턴을 이용하면 무엇이 생성되고, 누가 이것을 생성하며, 이것이 어떻게 생성되는지, 언제 생성할 것인지 결정하는 데 유연성을 확보할 수 있게 된다.
반응형
'Java > Design Pattern' 카테고리의 다른 글
Proxy Pattern (프록시 패턴) (0) | 2022.01.27 |
---|---|
Strategy Pattern (전략 패턴) (0) | 2022.01.27 |