본문 바로가기
디자인패턴

팩토리 패턴

by 백엔드 개발자 2026. 1. 8.

 

정적 팩토리 메서드

  • 생성자 호출 없이 static 메서드로 객체를 생성하고 반환하는 방식.
  • 만약 하나의 파라미터만 있어도 생성되게 만들고 싶으면 생성자로는 안되는 케이스가 있음(매개변수 타임과 함수명이 같아서)
  • 정팩메로 메서드명을 자유롭게 바꿀 수 있어 고려 가능

추가적인 장점

  • 호출시마다 인스턴스 새로 생성하지 않아도 됨
  • 반환 타입의 하위 타입 객체 반환가능
  • 정팩메 작성시점에 반환할 객체의 클래스가 존재하지 않아도 됨.

 


심플 팩토리

 

 

  • 생성의 책임을 하나의 클래스로 모는 방식을 심플 팩토리 기법이라고 함.
  • 그러나 확장될수록 여전히 팩토리 클래스내부의 수정이 필요하고, 기존코드를 수정하니 OCP위반임
  • 사실 패턴이 아님.

 


팩토리 메서드 패턴

  • 상위클래스가 객체 생성을 위한 메서드 정의만 제공하고, 하위클래스가 실제로 생성을 구현하는 패턴
  • 객체 생성이 서브클래스에 따라 달라져야 할때

 


 

추상 팩토리 패턴

 

 

 

  • 연관성있는 2개 이상의 객체를 생성할 수 있음

 

 

  • 관련된 객체들을 그룹 단위로 생성할 수 있는 인터페이스를 제공하고, 각 제품군에 따라 구체 팩토리를 구현하는 패턴
  • 제품들이 서로 연관되어 함께 사용되어야 할 때
  • 제품군에 따라 통일된 객체 생성이 필요할 때

 

 

 

팩토리는 안티 패턴인가

  • 객체가 어떻게 생성되는지 집중하고, 실제로 객체가 무엇을 하는지 무시함
  • 객체 생성시 불필요 복잡성 추가. 팩토리 객체는 시스템의 핵심과는 관련 x
  • 패턴은 수단이지 목적이 아님.(잘못쓰면 불필요한 복잡성 유발과, 중요한 초점에서 벗어날 수 있는 위험성이 있음. 그래서 문제를 해결하기 위한 수단이어야 함. 즉, 사용한 패턴이 문제에 걸맞는 정답이어야 함)

 

 

 

 

 

 

 

 

 

 

 

'디자인패턴' 카테고리의 다른 글

전략패턴  (0) 2026.01.07
생성- 빌더 패턴  (0) 2024.08.04
구조-Adapter 패턴  (0) 2024.08.03