안드로이드 singleton 예제

안드로이드 singleton 예제

대답은 전체 기사에 스며듭니다. 싱글톤을 사용하지 마십시오. 친애하는 Lokesh, 이 링크 http://blog.yohanliyanage.com/2009/09/breaking-the-singleton/ 참조 스레드 안전 singleton 클래스를 만드는 쉬운 방법은 전역 액세스 메서드를 동기화 하는 것입니다., 한 번에 이 메서드를 실행할 수 있도록. 이 방법의 일반적인 구현은 아래 클래스와 같습니다. 위의 예는 당신이 제대로 처리하지 않는 경우, 순진한 상태 상태 가변 싱글 톤이 엉망이 될 수 있음을 보여줍니다. 많은 “진입점”을 피하기 위해 실제로 상태를 변경해야 할 때 항상 생각해야합니다. 싱글 톤의 상태에 관심이 있다면, 당신은 항상 당신이 그것을 저장해야하는 곳과 방법을 생각해야합니다. 안드로이드에는 컨텍스트라는 클래스가 있습니다. 응용 프로그램의 서비스, 리소스 또는 내부 파일에 액세스해야 하는 경우 필요합니다.

뷰를 만들고 다른 활동을 시작하는 데 사용됩니다. 따라서 컨텍스트가 단일 개체에 매우 도움이 될 것으로 보일 수 있습니다. 싱글 톤에 대한 굉장하고 완전한 기사.. 정말 고마워요!! 위의 구현은 잘 작동하고 스레드 안전을 제공하지만 동기화 된 메서드와 관련된 비용으로 인해 성능을 저하시킵니다. 동기화)를 사용합니다. 매번 이 추가 오버헤드를 방지하기 위해 이중 확인 잠금 원칙이 사용됩니다. 이 방법에서는 단일 클래스의 인스턴스가 하나만 만들어지는지 확인하기 위해 if 조건 내에서 동기화된 블록이 추가 검사를 통해 사용됩니다. 열망 초기화와 반대로 getInstance() 메서드자체에서 클래스의 새 인스턴스를 초기화할 것입니다.

이 메서드는 해당 클래스의 인스턴스가 이미 만들어졌는지 확인합니다. 그렇다면 우리의 메서드 (getInstance(getInstance)))는 해당 이전 인스턴스를 반환하고 그렇지 않은 경우 JVM에서 singleton 클래스의 새 인스턴스를 만들고 해당 인스턴스를 반환합니다. 이 방법을 지연 초기화라고 합니다. 좋은 예, altough 에눔 싱글 톤은 모든 면에서 끔찍하며 OOP와 반대되며 나쁜 트릭처럼 보입니다. rakesh에 의해 제안 된 대답은 중대하지만 여전히 안드로이드에서 일부 디스크립트 싱글 톤은 자바의 싱글 톤과 동일합니다 : 싱글 톤 디자인 패턴은 이러한 모든 문제를 해결합니다. 싱글 톤 디자인 패턴을 사용하면 : MyActivity : 처음으로 싱글 톤을 설정 + 개인 생성자에서 mString 특성 (“Hello”)을 초기화하고 값 (“Hello”)을 표시합니다… evrything은 singleton.keep it….