정적 팩토리 메서드
![]() |
![]() |
- 생성자 호출 없이 static 메서드로 객체를 생성하고 반환하는 방식.
- 만약 하나의 파라미터만 있어도 생성되게 만들고 싶으면 생성자로는 안되는 케이스가 있음(매개변수 타임과 함수명이 같아서)
- 정팩메로 메서드명을 자유롭게 바꿀 수 있어 고려 가능
추가적인 장점
- 호출시마다 인스턴스 새로 생성하지 않아도 됨
- 반환 타입의 하위 타입 객체 반환가능
- 정팩메 작성시점에 반환할 객체의 클래스가 존재하지 않아도 됨.
심플 팩토리

![]() |
![]() |

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

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



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

- 관련된 객체들을 그룹 단위로 생성할 수 있는 인터페이스를 제공하고, 각 제품군에 따라 구체 팩토리를 구현하는 패턴
- 제품들이 서로 연관되어 함께 사용되어야 할 때
- 제품군에 따라 통일된 객체 생성이 필요할 때
팩토리는 안티 패턴인가
- 객체가 어떻게 생성되는지 집중하고, 실제로 객체가 무엇을 하는지 무시함
- 객체 생성시 불필요 복잡성 추가. 팩토리 객체는 시스템의 핵심과는 관련 x
- 패턴은 수단이지 목적이 아님.(잘못쓰면 불필요한 복잡성 유발과, 중요한 초점에서 벗어날 수 있는 위험성이 있음. 그래서 문제를 해결하기 위한 수단이어야 함. 즉, 사용한 패턴이 문제에 걸맞는 정답이어야 함)
'디자인패턴' 카테고리의 다른 글
| 전략패턴 (0) | 2026.01.07 |
|---|---|
| 생성- 빌더 패턴 (0) | 2024.08.04 |
| 구조-Adapter 패턴 (0) | 2024.08.03 |



