정적 팩토리 메소드

dgh03207·2022년 3월 30일
0

Java

목록 보기
1/1
⭐ 객체 생성을 생성자가 아닌 정적(static)메서드로 하는 것을 정적 팩토리 메서드라고 한다.

정적 팩토리 메소드의 장점

가독성이 좋고, 효율적(싱글톤)인 프로그래밍을 할 수가 있다.

  • 이름을 가질 수 있다.
  • 객체 생성을 관리할 수 있다.
  • 구현체를 숨길 수 있다.
  • 플라이웨이트 패턴 : 데이터를 공유하여 메모리를 절약하는 패턴으로 공통으로 사용되는 객체는 한번만 사용되고 Pool에 의해서 관리, 사용된다.

정적 팩토리 메소드 명명

  • from : 매개변수 하나로 인스턴스 생성하는 메소드
  • of : 매개변수 여러개를 받아 적절한 인스턴스 타입을 반환하는 메소드
  • getInstance | instance : 인스턴스 생성
  • newInstance | create : 새로운 인스턴스 생성
  • get[] : 다른 타입의 인스턴스 생성
  • new[] : 다른 타입의 새로운 인스턴스 생성

Optional의 of()

Optional은 자바8에서 추가되었다. Optional은 new 대신 of()메소드로 객체를 만들 수 있도록 설계가 되어있다.

Reference

profile
같이 공부하자!

2개의 댓글

comment-user-thumbnail
2022년 5월 24일

글 잘 읽었습니다!
혹시나.. 제가 잘 모르고있는걸 수도 있지만 내용에 조금 문의가있어서 댓글 남깁니다.
정적팩토리 메서드를 쓴다 -> 무조건 싱글톤 객체만 생성한다 는 아닌걸로 알고있습니다.

싱글톤 객체를 생성시 싱글톤을 유지하기위한 내부 로직(duplicate check), 혹은 무분별한 객체생성을 제한하기위한 생성자 private 처리를 하게될때 유용하게 생성자의 대용역할을 할 수 있는것이 정적 팩토리 메서드이며, 이때문에 자주 사용되곤 하지만

얼마든지 싱글톤 객체가 아닌 객체를 생성할 때도 쓸 수 있습니다.

본문에 남겨주었던 상속과 관련된 부분에서는 정적 팩토리 메서드의 문제가 아닌
위에 설명드린 싱글톤 객체생성을 위해 private 생성자만을 사용할때 -> 이 private 접근제한자 때문에, 자바에서 상속을 하지 못 하는걸로 저는 평소에 알고있었습니다.

혹시 제가 잘 못 이해하고 있었던 점 있으면 얼마든지 피드백 감사드립니다!

1개의 답글