Ethan Hur's blog

추상 팩토리 패턴 Revisited

2018-06-13

사실 예전에 디자인 패턴에 대해 잠시 공부하기는 했었다.

보통 디자인 패턴을 잘 활용하는 곳이 OOP 언어들(특히 자바)인데, OOP 언어를 빡시게 쓴 적이 최근에 없는 것 같다. (내가 쓰거나 좋아하는 Javascript, Python, Go, C, 흠… OOP는 어디?)

사실 설명 자체는 위키피디아에 너무 잘 나와있어서 생략한다.

이렇게 추상 팩토리 패턴을 사용하는 근본적인 이유는, nominal type system 에서 상속으로 해결할 수 없는 문제를 가장 효율적으로 해결하기 위해 de-coupling 한 결과인 것 같다.

위키피디아의 예제의 의미를 난 다음과 같이 해석한다.

인터페이스를 만족하는 class 가 있는데, class 를 초기화하는 부분은 Interface 로만 처리할 수 없으므로 뺀 것이다. 객체 생성까지만 factory 에서 잘 해주면 그 이후 behavior 는 같으므로 동일 코드를 재활용할 수 있어서 개발자로써 행복해진다.

이런 건 당연한 게 알고 있어야 한다고 생각은 하는데, Java 로 뭘 제대로 짜본 적이 있어야지 말이다.

친구가 Abstract Factory 를 쓰면 해결되는 문제를 가지고 고민하길래 같이 보가다 잘 기억이 안나서 저번에 배운 내용을 다시 정리하게 되었다.

오늘도 OOP 디자인 패턴을 글로 배운다. ㅠㅠ