5가지 생성 패턴에 대해 공부해봅니다. 생성 패턴은 이름처럼 인스턴스를 생성하고 복합하는 방법에 대한 패턴들입니다.
여기서는 미로 만들기를 주제로, 각 생성 패턴들을 사용했을 때, 어떤 다른 구조의 미로가 생성되는지 비교하며 학습해봅니다.
미로에는 방, 벽, 문의 3 가지 요소가 있습니다. 방은 4개의 방향으로 다른 요소와 이어져 있고, 방에서 방으로 Enter()할 수 있습니다. 방에 이어진 문으로 Enter()하면 문에 이어진 또다른 방으로 이동하게 됩니다.
추상 팩토리 패턴
추상 팩토리 패턴은 객체의 생성과 팩토리를 이용하는 시스템을 분리시키는 패턴입니다. 시스템은 추상화된 객체 생성 인터페이스만을 사용하고, 내부적으로 어떤 종류의 객체가 생성되는지는 추상 팩토리 패턴에게 맡깁니다.
기본적인 클래스 구조는 아래와 같습니다.
사용되는 과정을 말로 설명하자면,
- client가 AbstractFactory 형 객체에게 Product 객체 생성을 요청함.
- AbstractFactory 객체가 책임을 ConcreteFactory에게 위임함.
- ConcreteFactory가 ConcreteProduct를 생성함.
- client가 생성된 ConcreteProduct를 AbstractProduct 형으로 받아서 사용함.
이제 이 추상 팩토리 패턴을 미로 제작에 사용해봅시다. 아래 그림은 책에 나온 구조와 완전히 동일하지는 않지만, 위에 일반화된 구조에서 이름만 약간 바꾸자면 아래 그림처럼 된다.
이처럼 추상 팩토리 패턴을 사용해 미로의 종류에 따라 알맞은 종류의 방, 벽, 문을 생성한다.
'GOF의 DesignPattern' 카테고리의 다른 글
장식자 패턴 (0) | 2023.09.09 |
---|---|
3장 팩토리 메서드 패턴 (0) | 2023.03.02 |
3장 빌더 패턴 (0) | 2023.03.01 |
2장 사례 연구: 문서 편집기 설계 (0) | 2023.02.25 |
1장 서론. (0) | 2023.02.07 |