1. 팩토리 메서드 패턴
2. 추상 팩토리 패턴
3. 팩토리 패턴의 장단점
팩토리 메서드 패턴은 객체 생성하는 방법을 서브 클래스에서 정의하도록 하여, 객체 생성을 캡슐화하고 확장성을 높이는 디자인 패턴이다.
팩토리 메서드 패턴은 상위 클래스에서 객체 생성의 인터페이스만 제공하고, 실제 객체의 생성은 하위 클래스에 위임하는 방식이다.
[*] 추상체 : 인터페이스나 추상 클래스와 같이 구체적인 동작이 구현되지 않은 구조
[*] 구현체 : 인터페이스나 추상 클래스에서 정의한 동작이나 기능을 실제로 수행하는
구체적인 클래스
추상 팩토리 패턴은 여러 제품들을 생성하기 위해 사용되는 디자인 패턴으로,
특정 제품군을 생성할 때 주로 사용한다.
이 패턴의 주요 목적은 클라이언트 코드가 어떤 구체적인 클래스에 의존하지 않고, 상위 레벨에서 정의된 인터페이스를 통해 제품을 생성할 수 있도록 하는 것이다.
장점
1. 객체 생성 캡슐화 : 객체 생성 로직을 분리하여 클라이언트 코드가 객체 생성 방식에 의존하지 않는다.
2. 유연성 증가 : 객체 생성 방식을 변경해도 클라이언트 코드 수정 없이 팩토리만 수정하면 된다.
3. 코드 중복 감소 : 동일한 객체 생성 로직을 팩토리에서 관리하여 코드 중복을 줄인다.
4. 확장 용이성 : 새로운 객체 추가시 팩토리만 수정하면 돼서 확장 작업에 유리함.
5. SOLID 원칙 준수 : 개방-폐쇠 원칙을 지키면서 시스템 확장이 용이함.
단점
1. 복잡성 증가 : 객체 생성 로직이 분산되어 코드가 복잡해짐.
2. 추가 클래스 필요 : 객체 생성용 팩토리 클래스를 추가해야 하므로 클래스 수가 증가.
3. 디버깅 어려움 : 객체 생성 문제를 추적하기 어려울 수 있다.
팩토리 패턴은 복잡한 객체 생성 로직을 관리하고, 유연성 및 확장성을 높이는 데 유용하지만, 지나치게 복잡하거나 작은 프로젝트에는 불필요할 수 있다.