<aside> ⭐ 객체 생성을 생성자가 아닌 정적(static)메서드로 하는 것을 정적 팩토리 메서드라고 한다.
</aside>
생성자 대신에 정적 팩토리 메소드를 쓰는 이유를 하면 가장 먼저 보이는게 이름을 가질 수 있다는 것이었다. 그런데, 이름을 가질 수 있다고 해도 특별히 달라지는게 있나? 싶었다. 그런데 정적 팩토리 메소드를 쓰면 객체 생성을 호출될때마다 하는 것이 아니라 이미 생성된 객체를 사용하기 때문에 싱글톤 패턴으로 효율성 높은 코딩을 할 수 있다는 점이 굉장히 메리트가 있는 부분인 것 같았다(이 부분때문에 상속이 불가하지만 용도 맞게만 쓴다면 문제 없다고 생각한다.
가독성이 좋고, 효율적(싱글톤)인 프로그래밍을 할 수가 있다.
싱글톤으로 객체를 생성하기 때문에, 상속을 이용한 확징이 불가하다.
생성자를 private으로 선언을 하기 때문에 상속을 이용할 수 없게된다. 재사용성 측면에서는 좋지 않은 설계라고 생각하면 된다.
from
: 매개변수 하나로 인스턴스 생성하는 메소드of
: 매개변수 여러개를 받아 적절한 인스턴스 타입을 반환하는 메소드getInstance
| instance
: 인스턴스 생성newInstance
| create
: 새로운 인스턴스 생성get[]
: 다른 타입의 인스턴스 생성new[]
: 다른 타입의 새로운 인스턴스 생성