작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
294
·
수정됨
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 클래스가 인스턴스를 관리하는 싱글턴 역할을 함께 수행하도록 구현된 것입니다.
이해에 도움이 되었기를 바랍니다. 감사합니다.