11일차 단일 모드
무엇
하나의 클래스는 대상의 인용 (영원히 동일) 과 이 실례를 얻을 수 있는 방법 (정적 방법static이어야 하며, 보통 getInstance라는 이름을 사용합니다) 을 되돌려줍니다.우리가 이 방법을 호출할 때, 클래스가 가지고 있는 인용이 비어 있지 않으면 이 인용을 되돌려주고, 클래스가 유지하고 있는 인용이 비어 있으면 클래스의 실례를 만들고, 실례의 인용을 클래스가 유지하고 있는 인용에 부여한다.또한 우리는 이 클래스의 구조 방법을 사유 방법으로 정의하여 다른 곳의 코드는 이 클래스의 구조 함수를 호출하여 이 클래스의 대상을 실례화할 수 없고, 이 클래스가 제공하는 정적 방법을 통해서만 이 클래스의 유일한 실례를 얻을 수 있다.
2. 단례 특징 어떤 종류는 하나의 실례만 있을 수 있다
이것은 반드시 스스로 이 실례를 만들어야 한다
그것은 반드시 자체적으로 전체 시스템에 이 실례를 제공해야 한다
두 가지 실현 방식: 굶주림식과 게으름뱅이식
3. Java는 단일한 특징을 실현한다. 구조기는 사유이기 때문에 종류는 상속될 수 없다.(단일 클래스 요점 제1조: 어떤 클래스는 하나의 실례만 있을 수 있다)
모두 일례류를 호출하는 방법을 통해 일례류의 대상을 얻고 어떻게 일례화를 일례류가 조작하는지(일례류의 요점에 부합되는 제2조: 이 사례는 전체 시스템에 자체적으로 제공해야 한다)
4. 두 가지 실현 방식이 있다.
게으름뱅이/* */
public final class LazySingleton{
private static LazySingleton mInstance = null;
private LazySingleton() {} // ,
/**
* ,
*/
public synchronized static LazySingleton getInstance(){
if (mInstance == null){
mInstance = new LazySingleton();
}
return mInstance;
}
}
게으름뱅이
게으름뱅이식 단일 사례류는 실례화할 때 여러 라인이 동시에 처음으로 이런 것을 인용할 때의 접근 제한 문제를 잘 처리해야 한다. 특히 단일 사례류가 자원 컨트롤러로서 실례화할 때 자원 초기화와 관련되어야 하기 때문에 자원 초기화는 시간이 걸릴 가능성이 높다.이는 다선정이 동시에 처음으로 이런 것을 인용할 확률이 커졌다는 것을 의미한다.
아사자식:/*
1.
2. m_instance() ,
3.
*/
public class EagerSingleton{
private static final EagerSingleton mInstance = new EagerSingleton();
private EagerSingleton() {} // ,
/*
*
*/
public static EagerSingleton getInstance(){
return mInstance;
}
}
5. 굶주린 사람과 게으른 사람의 차이 1. 자원 활용 측면
아사자식은 구조기가 클래스만 불러오면 실례화되기 때문이다.게으름뱅이식보다 못하다.
2. 속도와 반응 시간
굶주린 사람이 게으른 사람보다 낫다
단례류 요점 제2조: 스스로 이 사례를 만들어야 한다
자신이 불러올 때 자신을 실례화한다.(static final )
클래스 방법이 호출되었을 때 초기화됩니다 (static가 되돌아올 때 초기화되지 않았는지 판단합니다)
2014-01-31
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
이것은 반드시 스스로 이 실례를 만들어야 한다
그것은 반드시 자체적으로 전체 시스템에 이 실례를 제공해야 한다
두 가지 실현 방식: 굶주림식과 게으름뱅이식
3. Java는 단일한 특징을 실현한다. 구조기는 사유이기 때문에 종류는 상속될 수 없다.(단일 클래스 요점 제1조: 어떤 클래스는 하나의 실례만 있을 수 있다)
모두 일례류를 호출하는 방법을 통해 일례류의 대상을 얻고 어떻게 일례화를 일례류가 조작하는지(일례류의 요점에 부합되는 제2조: 이 사례는 전체 시스템에 자체적으로 제공해야 한다)
4. 두 가지 실현 방식이 있다.
게으름뱅이/* */
public final class LazySingleton{
private static LazySingleton mInstance = null;
private LazySingleton() {} // ,
/**
* ,
*/
public synchronized static LazySingleton getInstance(){
if (mInstance == null){
mInstance = new LazySingleton();
}
return mInstance;
}
}
게으름뱅이
게으름뱅이식 단일 사례류는 실례화할 때 여러 라인이 동시에 처음으로 이런 것을 인용할 때의 접근 제한 문제를 잘 처리해야 한다. 특히 단일 사례류가 자원 컨트롤러로서 실례화할 때 자원 초기화와 관련되어야 하기 때문에 자원 초기화는 시간이 걸릴 가능성이 높다.이는 다선정이 동시에 처음으로 이런 것을 인용할 확률이 커졌다는 것을 의미한다.
아사자식:/*
1.
2. m_instance() ,
3.
*/
public class EagerSingleton{
private static final EagerSingleton mInstance = new EagerSingleton();
private EagerSingleton() {} // ,
/*
*
*/
public static EagerSingleton getInstance(){
return mInstance;
}
}
5. 굶주린 사람과 게으른 사람의 차이 1. 자원 활용 측면
아사자식은 구조기가 클래스만 불러오면 실례화되기 때문이다.게으름뱅이식보다 못하다.
2. 속도와 반응 시간
굶주린 사람이 게으른 사람보다 낫다
단례류 요점 제2조: 스스로 이 사례를 만들어야 한다
자신이 불러올 때 자신을 실례화한다.(static final )
클래스 방법이 호출되었을 때 초기화됩니다 (static가 되돌아올 때 초기화되지 않았는지 판단합니다)
2014-01-31
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
게으름뱅이
/* */
public final class LazySingleton{
private static LazySingleton mInstance = null;
private LazySingleton() {} // ,
/**
* ,
*/
public synchronized static LazySingleton getInstance(){
if (mInstance == null){
mInstance = new LazySingleton();
}
return mInstance;
}
}
게으름뱅이
게으름뱅이식 단일 사례류는 실례화할 때 여러 라인이 동시에 처음으로 이런 것을 인용할 때의 접근 제한 문제를 잘 처리해야 한다. 특히 단일 사례류가 자원 컨트롤러로서 실례화할 때 자원 초기화와 관련되어야 하기 때문에 자원 초기화는 시간이 걸릴 가능성이 높다.이는 다선정이 동시에 처음으로 이런 것을 인용할 확률이 커졌다는 것을 의미한다.
아사자식:
/*
1.
2. m_instance() ,
3.
*/
public class EagerSingleton{
private static final EagerSingleton mInstance = new EagerSingleton();
private EagerSingleton() {} // ,
/*
*
*/
public static EagerSingleton getInstance(){
return mInstance;
}
}
5. 굶주린 사람과 게으른 사람의 차이 1. 자원 활용 측면
아사자식은 구조기가 클래스만 불러오면 실례화되기 때문이다.게으름뱅이식보다 못하다.
2. 속도와 반응 시간
굶주린 사람이 게으른 사람보다 낫다
단례류 요점 제2조: 스스로 이 사례를 만들어야 한다
자신이 불러올 때 자신을 실례화한다.(static final )
클래스 방법이 호출되었을 때 초기화됩니다 (static가 되돌아올 때 초기화되지 않았는지 판단합니다)
2014-01-31
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.