Skip to content
Discussion options

You must be logged in to vote

생각 못해본 주제인데 좋은 질문인 것 같습니다!

일단은 결론을 말하기에 앞서,
public static final을 이용한 싱글톤을 생성하는 방식의 장점과 단점을 정리해보면 해답의 실마리가 보일 것 같아 다음과 같이 정리해보았습니다.

장점

  1. 생성 비용이 낮다
  2. 코드 구현이 간편하다

단점

  1. 리플렉션이나 역직렬화에 의해 싱글톤이 뚫린다.
  2. 객체지향과 거리가 멀다

단점이 장점을 상회한다고 생각이 들긴 하지만,
그럼에도 불구하고 public static final의 강력한 장점은 생성 비용이 낮다는 점인 것 같습니다.
따라서 이러한 점을 이용하여 사용되는 경우는 싱글톤과는 거리가 멀지만, 상수의 집합 클래스를 정의할 때인 것 같습니다.
상수의 집합은 별다른 상태를 가지지 않고 빠르게 가져다가 쓰며 재사용성이 목적이므로 public static final을 사용했을 떄의 장점이 부각됩니다.

정리하자면, 저의 결론은 다음과 같습니다.

public static final은 싱글톤에 쓴다면 구현이 편리하겠지만, 단점이 장점을 상회하므로 권장되지 않는다.
그럼에도 불구하고 단순히 public static final의 기능만 봤을 때는 상수의 집합을 구성하는 클래스에서 필드를 선언할 떄 진가를 발휘한다.

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by digitpic
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
질문
Labels
None yet
2 participants