21.11.18 22:01 작성
·
283
1
Managers파일에서
현재 이런식으로 코드가 짜져 있을 때 외부에서
Data의 함수에 접근을 할 때 Managers.Data.어떠한함수(); 이런식으로 Managers를 통해서만 접근이 가능하게 만들어 놓았는데 저렇게만 접근할 수 있도록 해두었는데... 질문 드리고 싶은게 어떤것이냐면은
1.현재 static Managers s_instance;로 한정자를 두어 오로지 Managers. s_instance 로만 접근이 가능하도록 만들어 두었습니다.(..맞나용..?)
2. 그리고 static Managers Instance { get { init(); return s_instance; } } 이코드의 말뜻이 return 으로 s_instance를 가르키니까 init()함수를 실행하고나서 Instance라는 프로퍼티는 결국 s_instance를 가르키는 말이 되는것인가요??
3. init함수를 살펴보면 결국에 Managers라는 컴포넌트를 찾아서 go에 할당해주고 go를 s_instance에 할당을 해주는데
코드 시작할때 init()함수를 먼저 실행하니까 s_instance가 결국에는 Managers파일(컴포넌트)를 가르키게 되는것인가요?
4. 1~3 종합을 하면
코드 시작할때 init함수 실행 -> s_instace가 Managers를 가르킴 -> static Managers Instance { get { init(); return s_instance; } }의 말뜻은 결국 s_instance를 가르킴 -> 따라서 public static DataManager Data { get { return Instance._data; } } Data와같은 프로퍼티도 결국 _data(DataManager의 새로운 객체)를 가르킴 -> 그러므로 Managers.Data.(_data안에있는 함수)
이렇게 접근을 하여 사용이 가능한 것인가요??