설명은 기나, 이해하기 쉽자면 말 그대로 공장.
하나하나 클래스를 분리(라떼 레시피, 아메리카노 레시피 등) 하고, 상위클래스 카페 공장. 분리되기 때문에 느슨한 결합 => 유연성 UP, 유지보수 UPFactory Method
: new 연산자 대신 getInstance()를 사용하는 것.
즉, 내가 인스턴스 생성 시, 직접 만드는 것이 아니라 인스턴스를 만들어주는 메서드를 대신 호출하는 것
상위클래스의 틀(뼈대)을 가지고, 하위클래스에서 구체적으로 구현하는 것
가변과 불변을 분리시킨 것.
상속받아서 구현
로직의 공통화