개발자의 길

[Design pattern] 추상 팩토리 패턴 ( Abstract Factory pattern )

토아드 2020. 9. 15. 20:33
반응형

팩토리 메서드 패턴과 유사해서 구분이 애매한 패턴인 추상 팩토리 패턴에 대해 소개하고자 한다.

( 팩토리 메서드 패턴 : makedotworld.tistory.com/44 )

 

팩토리 메서드 패턴과 공통점으로는, 객체 생성을 하고자 할때 객체에 대한 구상 형식을 알 필요가 없이, 추상 형식만 알면 된다는 점이다.

 

예를 들면, 팩토리 메서드 패턴에서 PIzza 가 추상 형식이고, PotatoPizza 가 구상 형식이 된다.

 

하지만 방법에서의 차이점이 있다.

 

팩토리 메서드 패턴은 Client 가 Creator 를 상속하여 팩토리 메서드를 Override 함으로써 Client 가 원하는 객체를 만든다.

 

추상 팩토리 패턴은 interface 로 선언되어 있는 Creator 를 Implement 하여, 추상 형식의 객체를 만드는 함수를 Override 하여, 구상 형식의 객체를 리턴하도록 구현한 다음 Interface 의 추상 메서드를 사용해서 객체를 만드는 방식이다.

 

이런 방식 때문에 팩토리 메서드 패턴은 어떤 구상 클래스를 객체 생성의 대상으로 필요로 할지 알 수 없는 경우 유용하다.

추상 팩토리 패턴 같은 경우는 일련의 제품군 들을 관리할 경우 수정에 유용하다. ( 새로운제품을 추가하기 위해서는 인터페이스를 바꾸는 작업이 필요하기 때문 )

 

패턴은 아래와 같다.

출처:위키백과

 

두 패턴은 같은 제품을 생산하는 코드를 두가지 방식으로 구현하고, 어떤 부분을 수정하기에 용이한지 확인하는 방식으로 이해를 하는 편이 정확할 것 같다.

반응형