프로그래밍/Design Patterns
[Design Pattern] 팩토리 메소드 패턴 (Factory Method)
NONAME5
2021. 8. 14. 17:27
팩토리 메소드 패턴 (Factory Method)?
- 생성 패턴
- SuperClass에서 인터페이스를 제공하고 SubClass에서 결정.
많은 설계는 FactoryMethod를 사용하는 것으로 시작하므로 알아두어야 좋다!
예를들어 아메리카노, 라떼 커피를 제조한다고 하자.
- 커피 SuperClass
- 아메리카노, 라떼 SubClass
GetName() 가상함수를 추가하여 Coffee 추상클래스를 만들었다.
SubClass인 아메리카노, 라떼에서 GetName()을 구현.
- 커피 생성 클래스 SuperClass
- 아메리카노, 라떼 생성 클래스 SubClass
이번에도 FactoryMethod()를 가상함수로 만들었고, SubClass들에서 구현을 한다.
생성클래스답게 new로 각 클래스의 객체를 생성한다.
장단점
장점
- 객체를 생성하는 코드와 클라이언트 코드와 분리 가능하다.
- 생성코드가 한 곳에 있기 때문에 유지보수가 쉽다.
단점
- 새로운 하위 클래스를 많이 만들어야 하기 때문에 코드가 더 복잡해질 수도 있다.