[디자인패턴] 추상 팩토리 패턴 (Abstract Factory Pattern)

Coffee Time☕·2021년 6월 3일
0

디자인 패턴

목록 보기
6/13

추상 팩토리 패턴이란?

지난 시간에 팩토리 패턴에 대해서 공부하였다. 팩토리 패턴은 객체의 생성을 '팩토리' 하는 클래스에게 책임을 맡기는 것이다. 그런데 생성해야하는 객체의 종류가 많은 경우에 각각에 대한 팩토리를 모두 생성하는 일은 복잡할 것이다.

추상 팩토리 패턴은 이와 같은 경우 연관이 있는 클래스를 페밀리로 묶어 일관성있게 처리할 수 있는 방안을 제시한다.
추상 팩토리 패턴은 추상 팩토리의 일종으로 보다 캡슐화된 방식이라고 할 수 있다.

추상팩토리 패턴이란 여러 종류의 객체를 생성할 때 일관성 있게 생성할 수 있도록 패밀리 단위로 생성하는 패턴이다.

추상 팩토리 패턴 예시

가령, 엘리베이터를 가동하는 프로그램을 짠다고하자.
엘리베이터는 LG사와 Hyundai사 2가지 종류 일 수 있다. 고려할 부품으로는 모터, 문이 있고 각각 LG와 Hyundai의 것이 있다. 이때, 추상 팩토리로 만드는 경우, 부품별로 팩토리를 만들어 생성해준다. ( MoterFactory와 DoorFactory)

그런데 보통의 경우, LG사는 LG의 door과 motor를 , Hyunadai사의 door과 motor을 이용한다. 따라서 팩토리를 연관이 있는 이 2가지로 생성해주면 부품이 늘어나더라도 팩토리의 개수가 더 늘어나지는 않을 것이다.

또한, 팩토리를 클라이언트에서 이용하고자 할 때, LG, Hyundai 중 팩토리를 선택하여 생성해야하는 경우가 생길 것이다. 이는 if-else나 switch문으로 연결되어, 새로운 제조사가 추가 될 시에 클라이언트 부분을 수정해야하는 불편함이 생긴다. 따라서 factoryFactory 클래스를 만들어, 펙토리를 생성하는 부분을 캡슐화하는 방법도 있다.

0개의 댓글