반응형
추상 팩토리 패턴은 서로 호환성이 있는 여러 서브 클래스들을 하나의 클래스에서 생성하여 제공하는 것을 말한다.
특정 클래스를 사용하기 위해서 특정 조건에 해당할 필요가 있지만, 그 조건과 같은 부모를 상속받은 서브 클래스가 여러개 존재할 경우에 자칫 다른 서브 클래스를 생성할 경우를 최소화하기 위한 방법이다.
위의 코드는 무기(Weapon)와 직업(JobClass)가 있다.
무기를 검, 활, 지팡이의 서브 클래스를 가지고 있고,
직업은 기사, 궁수, 마법사 서브 클래스를 가지고 있다.
각 직업은 해당 직업에 맞는 무기를 가져야만 공격을 할 수 있다.
예를 들면 검사가 검이 아닌 무기를 가지고 공격을 하려고 하면 공격이 되지 않고, 검을 가져야만 공격이 가능하다.
그래서 실수로 잘못된 무기를 생성하게 되면 위와 같은 결과를 얻게 된다.
때문에 관련된 서브 클래스들을 하나로 묶어 생성하는 '팩토리'를 만들어 관리해야 한다.
위처럼 팩토리를 만들어 관리하게 되면, 해당 팩토리에서 직업과 무기를 생성하여 넣어줌으로써 효과적으로 사용할 수 있다.
반응형
'프로그래밍 끄적 > 디자인 패턴 (Design Pattern)' 카테고리의 다른 글
[디자인 패턴] 어댑터 패턴 (Adapter Pattern) (0) | 2018.06.13 |
---|---|
[디자인 패턴] 싱글톤 패턴 (Singleton Pattern) (0) | 2018.06.03 |
[디자인 패턴] 프로토 타입 패턴 (Prototype Pattern) (0) | 2018.05.14 |
[디자인 패턴] 팩토리 메서드 패턴 (Factory Method Pattern) (0) | 2018.05.07 |
[디자인 패턴] 빌더 패턴 (Builder Pattern) (0) | 2018.05.07 |