- 순서
- 팩토리 팩턴이란?
- 팩토리 패턴의 장점과 단점
- 팩토리 패턴 사용시 고려사항
- 간단한 팩토리 패턴 작성
- 팩토리 팩턴이란?
- 객체 생성을 공장(Factory)화 시킨 클래스에 캡슐화 처리하여 대신 생성하게 하는 생성 디자인 패턴
- 클라이언트 코드가 직접 new 연산자를 사용하지 않고, 팩토리 메서드나 클래스를 통해 객체를 생성하게하여, 객체 생성의 책임을 분리시킴
- 팩토리 패턴의 사용 예
- 다양한 종류의 몬스터/아이템을 사용할 때
- 조건에 따라 다른 객체를 생성해야 할 때
- 생성 로직이 복잡하고 자주 변경될 때
- 팩토리 패턴의 장점과 단점
- 장점
- 객체 생성 캡슐화: 객체 생성 로직을 클라이언트 코드로부터 분리하여 유지보수가 쉬워짐
- 유연성 증가: 새로운 클래스나 로직이 추가되어도 기존 코드를 거의 수정하지 않고 확장 가능함
- 의존성 감소: 구체적인 클래스가 아닌 인터페이스/추상 클래스에 의존하게 됨 (DIP원칙)
- 코드 재사용성: 공통된 생성 로직을 재사용 가능함
- 단점
- 복잡도 증가: 간단한 객체 생성에도 별도 팩토리 클래스를 만들어야 하므로 코드가 길어짐
- 클래스 수 증가: 클래스와 인터페이스 수가 많아져 프로젝트 구조가 복잡해 질 수 있음
- 초기 설계 부담 : 유연성과 확장성을 고려한 초기 설계가 필요함
- 장점
- 팩토리 패턴 사용시 고려사항
- 다양한 유형의 객체가 추가될 가능성이 높은가?
- 객체 생성 과정이 복잡하거나 조건에 따라 달라지는 경우인가?
- 클라이언트가 구체 클래스가 아닌 인터페이스에 의존하는가?
- 메모리 및 성능 오버헤드가 있는가?
- 간단한 팩토리 패턴 작성
'C++ > 디자인패턴' 카테고리의 다른 글
| [C++]구조패턴/어댑터 패턴 (0) | 2025.07.28 |
|---|---|
| [C++]생성 패턴/빌더 패턴 (2) | 2025.07.25 |
| [C++] 행동 패턴/전략, 스트래티지 패턴(Strategy Pattern) (0) | 2025.07.11 |
| [C++] 생성 패턴/싱글톤 패턴 (0) | 2025.06.20 |
| [C++] 디자인패턴 (0) | 2025.06.13 |