[java] 팩토리 메소드 패턴

팩토리 메소드 패턴은 객체 생성을 담당하는 팩토리 메소드를 통해 객체를 생성하는 디자인 패턴 중 하나입니다. 이 패턴을 사용하면 객체의 인스턴스화를 서브클래스에 위임함으로써, 객체 생성을 추상화할 수 있습니다.

팩토리 메소드 패턴의 이점

팩토리 메소드 패턴 예제 - 자바

public interface Product {
    void operation();
}

public class ConcreteProduct implements Product {
    @Override
    public void operation() {
        System.out.println("Concrete Product operation");
    }
}

public abstract class Creator {
    public abstract Product factoryMethod();
    
    public void someOperation() {
        Product product = factoryMethod();
        product.operation();
    }
}

public class ConcreteCreator extends Creator {
    @Override
    public Product factoryMethod() {
        return new ConcreteProduct();
    }
}

public class Main {
    public static void main(String[] args) {
        Creator creator = new ConcreteCreator();
        creator.someOperation();
    }
}

위 예제에서 Creator는 팩토리 메소드를 갖고 있으며, ConcreteCreator 서브클래스에서 factoryMethod를 구현하여 실제 객체를 생성합니다. Main 클래스에서 ConcreteCreator를 이용하여 Product를 생성 및 활용하는 예제를 볼 수 있습니다.

요약

팩토리 메소드 패턴은 객체 생성을 서브클래스로 위임하여 유연성, 확장성 및 코드 재사용성을 높일 수 있는 디자인 패턴입니다. 이 패턴을 사용하면 객체 생성과 관련된 클래스들을 효과적으로 구조화할 수 있습니다.

참고 자료

#designpatterns #java #design #factorymethod