[디자인 패턴] 추상 팩토리 패턴

[원본 링크]

이건 일단, 팩토리 메서드를 확장한 스타일의 패턴이다.
https://blog.naver.com/sssang97/221711334613
기존의 팩토리 메소드가 그저 create 정적 메소드만 가지는 단순한 구조였던 것과 다르게,
추상 팩토리는 팩토리 클래스를 추상화한다. 또한 정적메소드를 사용하지 않고, 동적으로 사용된다.
그리고 보통 2개 이상의 create 메소드를 가지며, 각 create 메소드의 구현은 하나의 객체만을 생성한다.

이건 어떤 객체들이 일정한 분류군으로 나뉠 수 있을 때 유용하다.
가령 일련의 전자제품들을 인터페이스로 두고, 만든 회사별로 구현 객체들을 만들어야 한다면?
우리는 각 회사마다 하나의 팩토리 클래스를 둘 수 있다.

LG, 삼성의 휴대폰과 컴퓨터를 구현한다면 이런식으로 짤 수 있다.

먼저 각 객체의 인터페이스를 짠다.
대충만 만들었다. 인터페이스로 했지만, 추상클래스를 써도 문제없다.

그리고 저 객체들을 생성할 팩토리의 인터페이스를 만든다.

자, 밑작업은 다 됐다. 저 인터페이스에 맞춰서 구현만 잘 하면 된다.

쌤쑹의 제품 객체들을 구현한다.

대충만든 메서드라 숫자는 의미없으니 무시하길 바란다.

팩토리에서는 단순하게 생성만 해준다.

이러면 각 제품의 자잘한 구현을 숨기고 인터페이스와 팩토리만 밖으로 드러낼 수 있다.

LG의 전자제품과 팩토리도 뭐... 똑같이 대충 구현한다.

이제 이러면 생성 과정이든, 생성된 객체든 간에, 전부 일관된 인터페이스로 접근할 수 있다.

그렇다.


참조
https://whereami80.tistory.com/211
https://victorydntmd.tistory.com/300