팩토리 Factory 란?
팩토리는 객체의 생성만을 전담하는 객체입니다.
Interface를 구현한 클래스가 여러 개인 경우 외부에서 각 상황에 맞는 클래스를 찾아 인스턴스를 생성해주어야 하는 불편함을 해결해주는 패턴입니다. 즉 Factory에서 각 상황에 맞는 클래스를 찾아서 객체를 생성해주도록 합니다.
팩토리 Factory 패턴 사용
- 클래스가 만들어야 하는 개체 유형(타입)을 미리 알 수 없는 경우
- 클래스를 특정하기 위한 서브 클래스가 필요한 경우
- 복합한 클래스 구조를 단순화하기 위한 경우
팩토리 패턴 구현 예시
아래와 같이 애완동물을 생성하는 기능을 담당하는 객체를 Factory라고 합니다. 애완동물을 생성하려고 한다면 아래와 같이 new를 이용해서 생성해주어야 합니다.
애완동물 꾼이 = new 애완동물("꾼이", new Cat());
팩토리를 사용한다면 아래와 같이 생성할 수 있습니다.
애완동물Factory pet = new 애완동물Factory();
애완동물 꾼이 = pet.createCat("꾼이");
애완동물 Factory 내부 소스
public class 애완동물Factory {
public 애완동물 createCat(String name){
return new 애완동물(name, new Cat());
}
public 애완동물 createDog(String name){
return new 애완동물(name, new Dog());
}
public 애완동물 createParrot(String name){
return new 애완동물(name, new Parrot());
}
}
참조
*https://www.sitepoint.com/understanding-the-factory-method-design-pattern/
*https://www.tutorialspoint.com/design_pattern/factory_pattern.htm
'JAVA > DesignPattern' 카테고리의 다른 글
Design Pattern 디자인패턴 Adapter Pattern 어답터 패턴 (0) | 2021.12.16 |
---|---|
Design Pattern 디자인패턴 Prototype Pattern 프로토타입 패턴 (0) | 2021.12.15 |
Design Pattern 디자인 패턴 Builder Pattern 빌더 패턴 (0) | 2021.12.15 |
Design Pattern 디자인패턴 Singleton Pattern 싱글톤 패턴 (0) | 2021.12.14 |
Design Pattern 디자인 패턴 Abstract Factory Pattern 추상 팩토리 패턴 (0) | 2021.12.13 |