면접준비

디자인 패턴 - 팩토리 패턴 특징

K_Hyul 2024. 1. 8. 20:51
728x90

- 객체를 사용하는 코드에서 생성 부분을 떼어내 추상화한 패턴이다.

- 객체 생성을 캡슐화한다.

 

- 상속 관계에 있는 두 클래스에서 상위 클래스가 뼈대를 형성한다.

- 하위 클래스에서 객체 생성에 관한 구체적인 내용을 담는다.

- 느슨한 결합, 생성 방식에 대해 전혀 알 필요가 없기 때문에 유연성이 높다.

- 생성 코드가 따로 떼어져 있어 코드 리팩터링을 할 때 한 곳만 고칠 수 있으니 유지 보수성이 증가된다.

- 확장성이 높아진다.

- 매서드에 대한 메모리 할당을 한 번만 할 수 있는 장점이 있다.

 

// 제품 인터페이스
public interface Product {
    void doSomething();
}

// 구체 제품 클래스 1
public class ConcreteProduct1 implements Product {
    @Override
    public void doSomething() {
        // 구체적인 동작 구현
    }
}

// 구체 제품 클래스 2
public class ConcreteProduct2 implements Product {
    @Override
    public void doSomething() {
        // 구체적인 동작 구현
    }
}

// 팩토리 인터페이스
public interface Factory {
    Product createProduct();
}

// 구체 팩토리 클래스 1
public class ConcreteFactory1 implements Factory {
    @Override
    public Product createProduct() {
        return new ConcreteProduct1();
    }
}

// 구체 팩토리 클래스 2
public class ConcreteFactory2 implements Factory {
    @Override
    public Product createProduct() {
        return new ConcreteProduct2();
    }
}

 

728x90