팩토리 메소드 패턴이란?
template method 패턴의 활용 버젼
인스턴스를 생성하는 class를 따로 뺌
상위 클래스에서 인스턴스 생성 방법을 결정 > 하위 클래스에서 인스턴스를 실제로 생성
즉 new()를 활용해서 바로 객체 생성하는게 아니라능거
예제

Factory class
create(): 추상메소드를 활용함 -> template method
createProduct,registerProduct: 인스턴스 생성 방법 결정 -> factory method
public abstract class Factory {
public final Product create(String owner) {
Product p = createProduct(owner);
registerProduct(p);
return p;
}
protected abstract Product createProduct(String owner);
protected abstract void registerProduct(Product product);
}
IDCardFactory class
Factory 클래스(상위)의 메소드를 구현함.
여기서 new를 통해서 인스턴스를 실제 생성함
public class IDCardFactory extends Factory {
private List<String> owners = new ArrayList<String>();
protected Product createProduct(String owner) {
return new IDCard(owner);
}
protected void registerProduct(Product product) {
owners.add(((IDCard)product).getOwner());
System.out.println(product + “을 등록했습니다.”);
}
public List<String> getOwners() {
return owners;
}
}
'복습 > 소프트웨어디자인패턴' 카테고리의 다른 글
| Prototype 패턴 (0) | 2026.04.17 |
|---|---|
| Singleton 패턴 (0) | 2026.04.17 |
| Template Method 패턴 (0) | 2026.04.17 |
| Adapter 패턴 (0) | 2026.04.17 |
| Iterator 패턴 (0) | 2026.04.17 |