프로그램 아키텍쳐/디자인패턴

추상 팩토리 패턴 ( The Abstract Factory pattern )

본클라쓰 2009. 10. 28. 15:43

 추상 팩토리 패턴은 팩토리 패턴보다 한 단계 높은 추상성을 부여한다. 추상 팩토리 패턴은 요청에 따라 여러개의 다른 종류의 객체를 반환한다. 보통 GUI 클래스들이 추상 팩토리 패턴으로 구성되어 있다.


 상황에 따른 필요한 객체가 다른 경우 추상 팩토리 패턴은 상황에 맞게 유연하게 객체를 생성할 수 있다.


 

 

 

 

 

 

 

 

 

 

 


 


 

 이렇게 각각의 상황에 맞게 구현된 클래스가 있다면 추상 팩토리 패턴은 각각의 상황에 맞게 객체를 생성하는 방법을 제공한다.


 추상 팩토리는 다음과 같이 구성되어 있다.

 

















 

 각각의 상황에 맞는 객체를 생성하는 팩토리를 추상(abstract) 팩토리로 묶어 버린 것 이다.

 


실제 사용할 때는 가게(Store) 클래스에서 팩토리를 사용한 코드 

public class Store {


    Factory factory;


    public void setFactory(Factory factory) {

        this.factory = factory;

    }


    public 비빔밥 order비빔밥() {

        return factory.get비빔밥();

    }


    public 볶음밥 order볶음밥() {

        return factory.get볶음밥();

    }

}



실제 사용 코드

Store store = new Store();

store.setFactory( new 한국() );

store.order비빔밥();


store.setFactory( new 미국() );

store.order비빔밥();