[Unity] MVP 패턴을 사용하다.
728x90

디자인 패턴에 대해 무지하고 있던 앞날의 저를 반성합니다.

MVP 패턴을 사용해 코드의 가독성 및 의존성을 최소화 한 결과.. 진짜 아름다운 코드가 되었다고 느낀다.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class 타이틀 : 유아이
{
    유아이들
    bool _isLoaded = false;

    public override bool Init()
    {
...
    }

    public void ReadyToStart()
    {
        _isLoaded = true;
         //시작 처리 변수 어쩌고..
    }

    public void GuestLogin()
    {
...
    }

    public void GoogleLogin()
    {
...
    }

    public void OnShowLoadingPopup()
    {
...
    }

    public void DisableTitleObject()
    {
...
    }
}

 

예전에는 이렇게 그냥 Model View Presenter? 그런거 잘 모르겠고 때려박았다..

 

기능을 MVP 패턴을 준수하면서 변경을 했더니 위와 같은 코드가

진짜로 깔끔해졌다.. 개발 속도도 향상되었다고 생각한다.

 

public class LoadingPopupModel
{
    public const float BIRD_TWEEN_TIME = 2f;
    public const float BG_TWEEN_TIME = 0.5f;

    public float totalTasks = 0;
    public float completedTasks = 0;
}

 

대충 로딩 팝업 모델..

 

public class LoadingPopupPresenter
{
	public float birdTweenTime => LoadingPopupModel.BIRD_TWEEN_TIME;
    public float bgTweenTime => LoadingPopupModel.BG_TWEEN_TIME;
    public float progressToBirdPercent(float number) => number / 100;
    public float birdPercentToLoadingPercent(float number) => -243f + 486f * (number / 100);
 }

 

의존성을 줄이니까 어디에서 어떻게 개발을 해야할지 이제는 확실하게 알 수 있었다..

사람은 이래서 공부를 해야한다.. 게임 개발 할때는 그냥 툴이랑 언어지식이 매우 중요하다고 생각했는데

이번에 JAVA 백엔드를 기초부터 공부하면서 

 

변수명 / 의존성 / CS / 등등.. 제대로 배우니까

코드가 확 달라 보인다.

 

Spring에서 배운 대로 MVC 패턴을 사용해 볼까? 했는데 유니티는 MVP 패턴을 주로 많이 사용한다고 한다.

아무래도 View의 관계성에서 많은 차이가 있기 때문에.. Web의 경우는 1:n 관계로 많이 쓰는데

게임의 경우는 1:1 관계로 사용하다 보니까 이해가 가기 시작한다.

 

 

CS공부 꾸준히 하자..

실습이 가능한 CS는 꼭 실습해 보기로..!