지연 초기화
2018 단어 javacomputersciencebeginners
public class LazyInit {
private static Resource resource;
public static Resource getResource() {
if (resource == null) {
resource = new Resource();
}
return resource;
}
}
Maciej Najbar가 게시한 기사에서 가져온 코드 조각을 사용하여 단일 스레드 구현의 예를 볼 수 있습니다. Singleton 디자인 패턴을 사용해 본 사람들에게는 이것이 친숙하게 보일 수 있습니다. 클래스는 Resource 개체 이름 리소스에 대한 자리 표시자를 만듭니다. getResource() 메서드를 사용하여 개체가 값으로 초기화되었는지 또는 null인지 확인하기 위해 개체를 검사합니다. null이면 반환된 값으로 할당되고 그렇지 않으면 이미 할당된 값만 반환합니다. 이를 통해 프로그래머는 객체 생성 시 생성자가 아닌 getResource() 메서드를 사용하여 초기화가 발생할 때 조건을 만들 수 있습니다.
게으름을 피울 수 있는 경우에 대한 예
모든 것과 마찬가지로 고려해야 할 몇 가지 단점이 있습니다. 지연 로딩은 단순히 객체를 초기화하는 것보다 시스템에 더 많은 부담을 줍니다. 이것이 모든 것이 그렇게 구현되지 않는 이유입니다. 일부 시스템에서는 올바르게 구성하기 위해 이러한 개체를 즉시 생성해야 할 수 있습니다. 또한 초기화할 때까지 오류나 예외가 발생하지 않으므로 디버그하기가 더 어려울 수 있습니다. 프로그래밍의 모든 것과 마찬가지로 구현하기 전에 고려해야 할 장단점이 있습니다. 애플리케이션에 지연 로딩을 추가하기 전에 시스템의 비용을 측정해야 합니다.
자원:
Reference
이 문제에 관하여(지연 초기화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jryther/lazy-initialization-90g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)