
추가 자료
Effective Java, 생성자 대신 정적 팩터리 메서드를 고려하라
1. new에는 어떤 문제가 있을까?
Duck duck = new MallardDuck();
new는 구상 클래스의 인스턴스를 생성합니다.new를 사용해 구체적인 객체를 생성해야 합니다.new를 사용한 객체 생성 코드가 조건문(if-else)과 결합될 때 발생합니다.2. 구체적인 문제 상황
Duck duck;
if (type == picnic) duck = new MallardDuck();
else if (type == hunting) duck = new DecoyDuck();
else if (type == inBathTub) duck = new RubberDuck();
if-else 문을 찾아서 코드를 직접 수정해야 합니다.