섹션2 매니저 강의 중 프로퍼티로 인스턴스 리턴하는 부분 질문
374
작성자 없음
작성한 질문수 0
싱글턴 구현을 위해 public static Managers Instance 프로퍼티를 만들고 Managers로 리턴하는것 까진 이해했습니다.
근데, 다른 매니저 구현하는 부분에서
DataManager _data = new DataManager(); 로
인스턴스화 한 후,
public static DataManager Data { get return Instance?._data;}}
프로퍼티를 통해 리턴하는 부분이 이해가 안됩니다.
강의에서는 싱글턴으로 구현된 매니저에 다른 매니저들을 붙이는 거라고 말씀하셨는데, 리턴문이 이해가 안되네요.
?. 는 널체크고 사실상 Instance._data; 로 해도 실행은 잘되는것 같아서 저것만 가지고 질문을 드리자면
Data 프로퍼티를 호출하면 Instance 프로퍼티에 _data 에 담긴 인스턴스를 입력(set)하고 리턴을 한다는건지..(근데 그와중에 Instance 프로퍼티에 set은 또 없고..)
Instance 프로퍼티에서 get해서 가져오고 뭔가?를 해서 인스턴스를 리턴하는거같은데, 구문이 이해가 안가네요.. (문법실력이 부족한거같아서 구글링을 아무리해도 찾을수도 없네요 ㅜㅜ)
보통 이렇게 점을 찍어서 하는건 클래스 내부 요소를 요청하거나 메서드 체이닝을 하거나 할 때 쓰는거 아닌가 싶은데,
Instance라는 프로퍼티에 점을 찍은후 생성한 _data 인스턴스를 이어서 코딩하는건 도저히 이해가 안가네요 ㅠㅠ
어떤부분을 제가 공부하면 이해가 잘될까요.
아 그리고 추가 질문 하나더 드리자면.. Data 프로퍼티를 통해 Instance를 거쳐 리턴되는 값은 DataManager 형식일텐데, Instance는 Managers 형식인데 어떻게 저렇게 리턴이 가능한건가요? 그냥 클래스 인스턴스끼리는 된다고 생각하면되나요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
DataManager Data 프로퍼티는 DataManager 클래스의 인스턴스를 반환하는데, 이때 DataManager 클래스는 싱글턴으로 구현되어 있습니다. 이 말은 즉, DataManager 클래스의 객체는 딱 하나만 만들어지고, 이 객체를 DataManager Data 프로퍼티를 통해 얻을 수 있다는 뜻입니다.
Instance 프로퍼티는 Managers 클래스에서 DataManager 클래스의 인스턴스를 담는 변수인 _data를 가리킵니다. DataManager의 인스턴스는 DataManager 클래스 내에서만 생성되고, Managers 클래스에서는 이 인스턴스를 붙이는 역할만 하므로, Managers 클래스 내부에서 DataManager 인스턴스를 가져올 때는 Instance 프로퍼티를 사용합니다.
따라서 DataManager Data 프로퍼티는 실행될 때 Managers 클래스의 Instance 프로퍼티를 통해 DataManager 클래스의 _data 인스턴스를 가져오고, 이를 반환합니다. 실제로는 Instance 프로퍼티를 get을 통해 가져오는 것이지만, 내부적으로 알아서 처리되므로 사용자가 직접적으로 Instance 프로퍼티를 호출할 필요는 없습니다.
즉, DataManager Data 프로퍼티는 Managers 클래스와 DataManager 클래스를 연결해주는 다리 역할을 수행하며, Managers 클래스가 인스턴스를 관리하는 싱글턴 역할을 함께 수행하도록 구현된 것입니다.
이해에 도움이 되었기를 바랍니다. 감사합니다.
Addressables로 등록한 Slice된 Sprite의 하위 Sprite 접근법에 대해 질문드립니다
0
85
1
유니티 데이터 저장객체 ScriptableObject에 대해 의견 여쭤보고 싶습니다
0
151
2
안녕하세요 선생님 공부중에 궁금한게 있어서 질문 드려요
0
66
1
상속 구조에서의 awake흐름 및 init 함수 질문있습니다
0
87
1
젬 스프라이트가 로딩되지 않습니다.
0
118
1
혹시 스프라이트 드래그 앤 드롭으로 애니메이션 생성할 때
0
124
1
init() 2번 실행? 등 스킬 마무리 강의에서 질문 있습니다.
0
170
2
Managers.Object.Player와 Mangers.Game.Player 차이
0
115
1
상업적 출시에 대한 질문입니다.
0
170
1
EquipmentData 관련해서 질문드립니다
0
118
1
Data관리 관련해서 질문드립니다.
0
171
2
MonsterControllelr 에서 State Dead 사용
0
108
1
안드로이드 빌드에서는 LoadAllAsync , LoadAsync 가 동작 하지 않고 있습니다.
0
241
2
Instantiate 관련 질문 드립니다
0
159
1
포트폴리오 문서작성에 있어서 질문드립니다.
0
606
2
UI 연동방식에 대해서 질문드립니다.
0
183
1
인디게임출시경험이 중요할까요?
1
346
1
Coroutine과 uniTask 질문드립니다.
0
240
1
ResourceManager 메서드 역할
0
222
1
스프라이트 자료
1
183
1
xml 에
0
272
2
UI 리소스 사용문의
0
273
1
폴더 이름 제일 앞에 @를 붙이는 이유가 궁굼해요
0
600
2
3.:43 초 때부터 잘 안되는 것 같습니다...
0
333
1





