Lazy Initialization(초기화 지연)?

- 초기화를 바로 하는 것이 아닌 최초 필요한 시점에 초기화가 이루어지고,

이후에는 생성된 객체를 참조하게 되는 것

 

#1. Lazy Initialization은 필드 값을 사용하기 전까지는 계산하는 것을 원치 않고,

실제로 값을 사용하는 시점에서 계산하고자 할 때 유용 

 

#2. 객체 초기화는 첫 요청이 일어나느 시점에 이루어짐

 

#3. 싱글턴 패턴의 유형을 따르므로 멀티스레드 프로그램 작성시에는 동기화에 신경을 써야 한다.

그렇지 않으면 의도치 않은 결과를 가져 올 수 있다.

 

언제 사용하는 것이 좋은가?

- 정의된 필드가 많은 경우 사용되지 않는 상황이나,

초기화를 빨리 수행하고 부가 작업을 뒤로 미루고 싶을 때 적합하다.

 

언제 사용하지 않는 것이 좋은가?

- 최적화를 통해 성능 저하를 해결해야 하는 상황이 아니라면 초기화의 지연을 사용하지 않아야 한다.

  어떤 경우에는 초기화의 지연 기법이 디버깅을 어렵게 할 수 있다.

'Programming > C++ Modern' 카테고리의 다른 글

Precompiled Header  (0) 2019.09.05

+ Recent posts