1) 팩토리 메소드 패턴, 실무에서 어떻게 쓰이나?
- 단순한 팩토리 메소드 패턴을 다음과 같이 만들 수 있습니다.
public class SimpleFactory{
public Object createProduct(String name){
if(name.equals("whiteship")){
return new Whiteship();
}else if(name.equals("blackship")){
return new Blackship();
}
throw new IllegalArgumentException();
}
}
- 자바에서 사용하는 Calendar 클래스가 이러한 방식으로 구현되어 있습니다.
public class CalendarExample{
public static void main(String[] args){
System.out.println(Calendar.getInstance().getClass());
System.out.println(Calendar.getInstance(Locale.forLanguageTag("th-TH-x-lvariant-TH")).getClass());
System.out.println(Calendar.getInstance(Locale.forLanguageTag("ja-JP-x-lvariant-JP")).getClass());
}
}
// 실행 결과
class java.util.GregorianCalendar
class sun.util.BuddhistCalendar
class java.util.JapaneseImperialCalendar
- 스프링이 제공하는 빈 팩토리도 팩토리 메소드 패턴을 구현하고 있다고 할 수 있습니다.
참고
- 백기선 코딩으로 학습하는 GoF의 디자인 패턴
'디자인 패턴' 카테고리의 다른 글
추상 팩토리 패턴(1) - 개념, 패턴 적용하기 (0) | 2022.09.02 |
---|---|
팩토리 메소드 패턴(2) - 인터페이스 적용하기, 장점과 단점 (0) | 2022.09.01 |
팩토리 메소드 패턴(1) - 개념, 패턴 적용 (0) | 2022.09.01 |
싱글톤 패턴(3) - 자바와 스프링에서 찾아보는 패턴 (0) | 2022.08.31 |
싱글톤 패턴(2) - 싱글톤 패턴을 깨뜨리는 방법, 안전하고 단순하게 구현하는 방법 (0) | 2022.08.31 |