C++/디자인패턴

[C++]생성 패턴/팩토리 패턴

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