[패캠강의] 팩토리 메서드 패턴

2022. 1. 1. 21:18디자인 패턴

Factory Method Pattern

하위 클래스에게 위임하는 패턴 중 하나입니다.

팩토리를 하나 두고, 들어오는 매개 변수에 따라서든 Map<>에 해당되는 keyword에 따라서든 인스턴스를 다르게 반환해줄 수 있는 패턴입니다.

팩토리에서 조건이나 인스턴스 관리를 맡아하면 하위 클래스는 변경에 대처할 부분이 적어지는 장점이 있습니다.

JDK에서 사용되는 팩토리 메서드는 getInstance()가 java.util.Calendar, NumberFormat, ResourceBundle에서 사용되고 있습니다.

레퍼 클래스 Integer, Boolean etc 들에서 value들을 측정하기 위해 valueOf() 메서드를 사용할때도 팩토리 메서드 패턴을 사용합니다.


public class Calendar {

    public static Calendar getInstance(TimeZone zone) {
        return createCalendar(zone, Locale.getDefault(Locale.Category.FORMAT));
    }

    private static Calendar createCalendar(TimeZone zone, Locale aLocale) {
        if (TimeZone.getTimeZone("1").equals(zone)) {
            return new OneCalendar();
        }
        return new Calendar();
    }
}


참고자료