저는 새로운 프로그래머로서 모범 사례를 없애고 자합니다. 한 가지 방법으로 간단한 클래스를 작성합니다. 길이가 길고 메모리 크기를 나타내는 int를 반환합니다.이것이 싱글 톤을 잘 사용합니까?
저는이 메모리 모델 중 둘 이상을 원할 것입니다. 그리고 각각의 메모리 모델이 개별적인 싱글 톤이어야한다고 생각합니다. 그게 Singleton 패턴의 합리적인 사용인가요? 난 오직 하나의 인스턴스가 존재할 필요가 없지만, 이런 종류의 클래스는 개념적으로 싱글 톤인 것 같습니다. 그게 싱글 톤이되는 좋은 이유입니까? 아니면 개인 생성자를 추가하고 메서드를 정적으로 만드는 것이 합리적일까요? 아니면 나는 모든 것을 과소 평가하고 있습니까? 코드는 다음과 같습니다.
public class MemoryModel implements SomeInterface {
public int get(Long links) {
final int result;
if (links < 700_000) {
result = 50_000;
} else {
result = 140_000;
}
return result;
}
}
편집 : 모든 사람의 답변을 올바르게 이해하면 대답은 '아니오'입니다. 정확히이 클래스의 한 인스턴스가 필요하지 않습니다. 인스턴스를 전혀 인스턴스화 할 이유가 없습니다. 메소드를 정적으로 만들고 인스턴스화 할 필요가 없습니다.
또한 싱글 톤 패턴이 과도하게 사용되고 글로벌 엔티티를 생성하기 때문에 문제가 될 수있는 대답과 링크로부터 감각을 얻습니다. 싱글 톤은 단 하나의 인스턴스 만 존재하는 정당한 이유가있는 경우에만 사용해야합니다.
추천 도서 : http://jalf.dk/blog/2010/03/singletons-solving-problems-you-didnt-know-you-never-had-since-1995/ –
왜 '길게 ''긴 '대신'? 'null'을 테스트하지 않습니다. 즉,'links'가 null 인 경우'if' 문의 줄에서 NullPointerException을 얻습니다. –
실제 코드에서 null을 테스트합니다. 아이디어가 명확해질 수 있도록 필수가 아닌 코드를 모두 꺼 냈습니다. – csjacobs24