클라이언트가 특정 클래스의 인스턴스를 얻으려면 new 연산자로 public 생성자를 호출하면 된다. 하지만 이는 많은 단점을 가지고 있다. 1) 생성자는 오버로딩되어 파라미터에 따라 다양한 형태가 존재하는데, 생성자는 모두 동일한 이름이라 어떤 생성자가 어떤 종류의 인스턴스를 생성하는지 알 수 없다. 2) new 연산을 할 때마다 객체가 하나씩 생성되므로, 호출이 잦은 객체인 경우 쓸데없이 많은 객체가 생성될 수 있다. 3) 자기 자신의 인스턴스만 생성 가능하다. 4) 클라이언트와 생성하려는 클래스의 생성자를 참조하가 위해 클래스를 import 해야하므로 결합도가 올라간다. 이는 정적 팩터리 메서드로 해결 가능하다. 1) 생성자는 오버로딩되어 파라미터에 따라 다양한 형태가 존재하는데, 생성자는 모두 동일..