https://velog.io/@ljo_0920/팩토리-메서드
팩토리 메서드란?
- 객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한
결정은 서브클래스가 내리도록 하는 패턴
- 팩토리 메소드란 쉽게 말하면 객체를 생성 반환하는 메서드이다.
- 다시 말해서 팩토리메서드 패턴이란 하위 클래스에서 팩토리 메서드를 오버라이딩해서 객체를 반환하게 하는 패턴이다.
어떤 상황에서 주로 사용하는가?
- 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때
- 생성할 객체를 기술하는 책임을 자신의 서브클래스가 지정했으면 할 때
- 객체 생성의 책임을 몇 개의 보조 서브클래스 가운데 하나에게 위임하고, 어떤 서브클래스가 위임자인지에 대한 정보를 국소화시키고 싶을 때
구조 & 참여자

Product
- 팩토리 메서드가 생성하는 객체의 인터페이스 정의한다.
ConcreteProduct