실장님 코드 중 클래스 생성을 위해 new 연산자를 쓰지 않고 클래스 내부에 static 한 create 메소드를 사용한 부분이 있는데, 이게 왜 필요한지 오늘 알게 됨.
JavaScript 레벨에서 new 생성과 static create 생성은 본질적으로 다를게 없지만 클래스의 맴버 필드가 모두 private 가 가능하다면 new 연산으로 인스턴스를 만들 수 없게 됨. 완전한 은닉이 가능하게 되는 것이지.
이 경우 static create 메소드를 제공하고 이를 통해 인스턴스를 만들 수 있음. 이렇게 하면 인스턴스를 만드는 옵션을 다양하게 제공할 수 있음. 더불어 생성자 폴리모프도 가능하니 더 유연하게 목적에 맞는 인스턴스 생성을 할 수 있음.
나중에 한 번 더 물어봐서 정리해야겠다.