안드로이드에서 주로 쓰는 디자인 패턴은 MVC, MVP, MVVM 패턴이다.
MVVM은 제가.. 아직 안해봤고(실시간 연동이라니 ㅜ) MVC와 MVP에 대해서 간단히 고찰한다.
기본적으로 제가(그리고 여러분들 대부분도) 쓰는건 MVC 패턴입니다.
여기서 볼 수 있듯, 액티비티에서 뷰와 컨트롤러, 양쪽의 역할을 담당합니다. 그렇다보니 뷰와 컨트롤러는 필수불가결적으로 종속성이 높아지고, 그래서 나타난게 MVP 패턴입니다.
MVP패턴은 인터페이스로 Present를 만들어서, Present 내부에서 이벤트 컨트롤을 모두 담당합니다.
즉, 액티비티는 Present를 호출하기만 하면 되고, 내부에서는 뷰만 담당하면 되죠. 뷰와 컨트롤러의 종속성이 떨어졌습니다. 그래서 종속성을 두고봤을땐, MVP 패턴이 MVC 패턴보다 훨씬 추천되는건 당연한 것 같아요.
그런데, 팀장님이랑 얘기하면서 가만 생각해보면 이것도 프로그램의 규모에 따라 다른 것 같아요. MVP 패턴의 경우, Present에서 모든 이벤트를 처리해버리니까, 큰 프로그램의 경우 다양한 이벤트가 일어납니다. 그러니까, Present의 규모가 점점 커지면서 스파게티 코드가 될 가능성이 높아지지 않나, 싶은거에요. 물론 MVC도 스파게티 가능성이 없는건 아니지만, 한 뷰에서 일어나는 이벤트를 뷰 내부에서 선언하면서, 개발자가 코딩할때 헛갈릴 염려는 확실히 줄어들겠다는 느낌은 있더라고요. 그래서 아직은 MVP 패턴을 완벽히 구현해야겠다는 생각은 덜 드는 것 같아요.
(이것도 제가 주니어라 그럴 수 있습니다)(눈물줄줄)
'Android' 카테고리의 다른 글
Android Studio, JAVA] 안드로이드 웹뷰에서 ISP 요청시 ERR_UNKNOWN_URL_SCHEME 오류 해결법 (0) | 2021.03.12 |
---|---|
Android Studio, JAVA] 안드로이드 intent cannot resolve constructor 오류 해결 (0) | 2021.03.09 |
Android Studio, Kotlin] 코틀린 익스텐션을 이용한 리사이클러뷰 제작 (0) | 2020.12.29 |
Android Studio, Kotlin] 코틀린 익스텐션(findViewById 사용하지 않고 XML 요소 참조하기) (0) | 2020.12.29 |
Android Studio, JAVA] 컬러 그래디언트 만들기 (0) | 2020.11.25 |