기타/디자인패턴 [디자인 패턴]MVP - [출처] https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns Level up your programming with game programming patterns Our new e-book explains well-known design patterns and shares practical examples for using them in your Unity project. unity.com M(Model) : 데이터 값을 보유하는 컨테이너 역할. 로직, 계산을 수행하지 않음V(View) : 인터페이스에 해당하며, 데이터를 화면에 표시하는 역할C(Controller) : 런타임 시 게임 데이터 처리와 값의 변경을 계산하는 역할각 파트에서 기능을 제한하면서 일을 처리, 단일 책임의 원칙의 개념 MVC의 변형인 MVP모델 데이터 변경 사항 수신을 위해 View 관련 코드가 필요했다. Controller 부분을 Presenter로 변경Presenter : 두 레이어의 중개자 | 모델에서 데이터 검색 후 View에 표시하기 위해 형식을 지정. View를 통해 들어온 입력을 토대로 모델을 조작한다. 변경된 모델의 상태를 View에 전달.View : 그래픽, 입력 | 입력을 처리하도록 변경, Presenter에게 입력값 전달과 변경된 사항을 받아들여 View 업데이트Model : 데이터 | Presenter로 부터 들어온 메세지를 통해 상태변경. 상태 변경이 완료될 시 Presenter에게 알림. ClickDamage 버튼. 사용자의 입력이 있을 경우 입력을 입력을 전달한다. HealthPresenter 중개자. 사용자의 입력에 따라 리셋, 데미지 등의 명령을 Health 모델로 전달Health Model에서 변경된 내용을 전달받아 View에 전달 View UI. 입력과 변경내용을 받아 사용자에게 노출 모델 변경사항을 바로 View에 표시하는 것이 아닌 중개자를 통해 저장된 Action을 통해 저장된 View 변경을 실행View에서 모델로 가기 위한 중개자가 존재. HealthPresenter Health Model View 입력 받기 장점-대규모 프로젝트 시 View Presenter의 분리로 유지보수의 용이-사용자 인터페이스와 게임플레이 로직의 분리로 인한 단순화-클래스의 분리와 세분화로 가독성 향상과 유지보수의 용이성주의 사항-앞선 디자인 패턴보다 큰 아키텍쳐 패턴이기에 클래스에 대한 책임과 계획이 필요-해당 패턴이 모든 경우에서 유용한 것이 아니다. 데이터, 로직, 인터페이스의 분리로 얻을 수 있는 이점에 대해 고려 공유하기 게시글 관리 구독하기집게사장의 꿈 '기타 > 디자인패턴' 카테고리의 다른 글 [디자인 패턴]Observe (0) 2024.05.21 [디자인 패턴] State (0) 2024.05.21 [디자인 패턴] Command (0) 2024.05.21 [디자인 패턴] ObjectPool (0) 2024.05.19 [디자인 패턴] Factory (0) 2024.05.19 Contents 당신이 좋아할만한 콘텐츠 [디자인 패턴]Observe 2024.05.21 [디자인 패턴] State 2024.05.21 [디자인 패턴] Command 2024.05.21 [디자인 패턴] ObjectPool 2024.05.19 댓글 0 + 이전 댓글 더보기