커뮤니티는 언제 싱글 톤을 사용하는 것이 적절하다고 믿습니까? [복제하다

StackOverflow https://stackoverflow.com/questions/138124

  •  02-07-2019
  •  | 
  •  

문제

가능한 복제 :
싱글 톤 : 어떻게 사용해야합니까?

Ewan Makepece의 싱글 톤 패턴에 대한 우수한 이전 질문에 따라, 나는 "커뮤니티가 싱글 톤을 사용하는 것이 적절하다고 언제 적절하다고 믿는가?"라고 묻습니다.

비평의 예를 제시하겠습니다.

"아이콘 매너"싱글 톤이 있습니다. 내 아이콘이 디스크에있는 위치를 나타내는 속성 파일을 읽은 다음 모든 아이콘을 읽고 나중에 사용하기 위해 캐시합니다.

아이콘은 내 UI (탭, 테이블, 프레임 등) 전체에서 사용할 수 있습니다. 따라서 정적 싱글 톤 방법을 통해 액세스하는 것은 매우 편안합니다. 또한 아이콘을 한 번만 읽는지 확인하고 싶습니다 (필요할 때마다 디스크에서 읽는 것이 매우 느리면) 커뮤니티는 이것이 싱글 톤의 적절한 사용이라고 생각합니까? 그렇지 않다면 어떻게 구현되었을 수 있습니까?

싱글 톤의 다른 유효한 용도는 무엇입니까?

도움이 되었습니까?

해결책

IconManager는 공장 패턴을 구현하고 아이콘을 빌드합니다. 그리고 아이콘을 만들려면 하나의 공장 만 있으면됩니다. 따라서이 경우 싱글 톤 IMHO를 사용하는 데 문제가 없습니다. 나는이 중앙 집중식 공장들로 소프트웨어를 구축했으며 모든 것이 잘 작동했습니다.

이 스레드도 참조하십시오. 싱글 톤 클래스의 오용의 가장 일반적인 예

다른 팁

대안적인 접근 방식은 아이콘을로드하는 클래스 인스턴스를 작성한 다음 리소스에 액세스하는 데 필요한 모든 컨트롤 에이 인스턴스에 대한 참조를 전달하는 것입니다. 그런 식으로 미래에 하나 이상의 아이콘 로더를 갖추고 필요에 따라 전달할 수 있습니다. 미래에 더 유연하지만 다소 큰 단점으로 Zillion 컨트롤을 주변에 전달합니다.

싱글 톤을 잘 활용하는 것은 하나의 활성 연결 만 가질 수있는 리소스에 액세스 할 때입니다. 이 제한이있는 하드웨어 장치가 많이 있습니다.

당신이 a에 연결한다고 가정 해 봅시다 CCTV 카메라 하나의 연결 만 허용합니다. 싱글 톤 패턴은 먼저 사용하면이 연결을 생성하고 열린 상태로 유지합니다. 카메라에서 여러 소스에서 사진이 필요할 때마다 다른 문제를 고려하면 사진을 사용할 수 있다는 것을 알면서 싱글 톤을 칠 수 있습니다.

카메라에 초기 연결 시간이 느리면 연결을 열지 않고 연결을 열고 사진을 잡고 연결을 다시 닫는 것이 훨씬 더 효율적일 수 있습니다.

나는 실제로 싱글 톤을 사용한 적이 없지만 디자인 패턴을 많이 사용하지 않았습니다. 나는 다른 패턴이 공장과 게이트웨이 패턴처럼 그들을 요구할 때 매우 가치가 있다고 생각합니다. 그러나 그들은 거의 스스로는 결코 좋지 않습니다.

당신은 고려하고 싶을 것입니다 모성 패턴 많은 단점없이 싱글 톤의 모든 이점을 제공합니다. 이것은 또한 당신이 찾고있는 글로벌 속성을 가지고있는 상태의 풍부한 객체를 가질 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top