특정 **인스턴스를 생성하는 책임
**을 구체적인 클래스가 아닌 추상적인 인터페이스의 메소드로 감싸는 것
OCP를 지킬 수 있다
기존 인스턴스를 생성하는 로직을 변경하지 않고 새 인스턴스를 다른 방법으로 확장성 있게 추가하는 것이 가능
새로운 케이스가 추가될 수록 클래스의 수가 계속 늘어난다
우선 팩토리 메소드 패턴을 적용하지 않은 코드
예로 CarFactory와, 자동차 클래스인 Car, 자동차를 만들어달라고 요청하는 Client로, 총 3개의 클래스가 있다
@Getter
@Setter
public class Car {
String name;
String color;
String logo;
}
자동차 클래스