Open OskaKim opened 2 years ago
present는 한 화면에 해당한다 기능적으로 분리된 부분은 각자 다른 화면에 해당한다
예)
기본적으로 present사이의 통신은 불필요하며 없어야 하지만, 특별한 상황일때는 static으로 통신한다.
같은 present가 두개 이상의 인스턴트를 가지는 상황도 없음.
한 화면만 있는 heya-p의 특성상 present가 하나만 존재하기에 적절히 분리를 시켜야 할 것 같다. present가 가지는 요소 중, view와 controller는 개별 사항이므로 문제가 되지 않는데, model에 대해서는 생각을 해봐야 함. 다른 프레젠터끼리도 같은 모델을 참조하는 경우가 생길 수 있고, 그때 서로 다른 인스턴스를 가지면 안됨. 일단 단순하게 모델을 monobehaviour화 시키고 인스펙터 참조로 문제 해결은 가능할 듯.. 또 문제가 있으면 다시 생각해야겠다
present와 controller를 분리할 이유가 없으므로 controller로 통합
view - controller - model. view와 model은 서로를 알 수 없음 구조가 복잡해지지 않도록 model은 싱글톤으로 하되, 메모리상 문제가 생기지 않도록 controller에서 사용할 때 생성.
메모리 관리를 위해 어느 controller에서 사용하지도 않는 상태가 되면 model의 오브젝트를 삭제.
MVVM을 처음 채용하려 했으나 너무 복잡해지는 경향이 있어 보류
UniRx를 사용하는 MVP를 고려 중
1 present - N model 1 present - N View 가 가능 할 듯
view와 model은 서로를 참조하지 않음 model의 실체는 present가 가짐 view는 씬에 존재하며, 인스펙터를 통해 바인딩
view의 입력은 react를 통해 present내에서 이벤트를 만들고, model의 데이터를 업데이트 한다. model의 데이터의 갱신을 react를 통해 present내에서 이벤트를 만들고, view의 데이터를 업데이트 한다.
참고 https://tech.lonpeach.com/2020/11/09/Thinking-about-MVRP/ https://orotiyamatano.hatenablog.com/entry/2019/08/19/Unity%E3%81%AEMVP%E3%80%81MV%28R%29P%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%9F%E3%81%91%E3%81%A9%E3%80%81%E3%81%A9%E3%82%8C%E3%81%8C%E6%AD%A3%E3%81%97%E3%81%84%E3%82%93%E3%81%A0%EF%BC%9F#Unity%E3%81%A7%E8%A8%AD%E8%A8%88%E3%82%92%E3%81%97%E3%81%9F%E3%81%84