MVC패턴?
-Model,View,Controller의 약자
-비즈니스 처리 로직과 UI요소를 분리시켜 서로 영향없이 개발
-안드로이드에서는 Activity/Fragment -> View,Controller 역할을 함께한다.
특징?
-Model : 데이터를 가진다.
-View : 사용자에게 보여 질 화면을 표현한다.
Controller?
-사용자로부터 입력을 받고, 이를 모델에 의해 View를 정의한다. *(Model과View연결)
- View와 Model을 변화시키는 알고리즘이나 소스코드가 위치한 곳
예) Model을 호출해서 데이터를 변경 명령을 내리거나, 뷰에서 버튼 색상을 변경을 명령 내리거나 등
-앱을 묶어주는 접착제
입력은 모두 Controller에서 발생한다.
MVC패턴 흐름
1. 사용자가 화면의 버튼을 클릭
2. Controller가 View의 값을 바꾼다던지 동작을 컨트롤
3. View에서 Controller에게 사용자 입력을 전달
4.Controller에서 Model에게 값의 변경이 필요하다면 모델값을 변경
5.Model에서 View에게 값의 변경 된 것을 View에 반영한다.
MVC패턴의 규칙 5가지
1.Model은 Controller와 View에 의존하지 않아야한다.
(Model내부에 Controller와 View에 관련된 코드가 있으면 안된다.)
2.View는 Model에만 의존해야하고, Controller에는 의존하면 안된다.
(VIew내부에 Model의 코드만 있을 수 있고, Controller의 코드가 있으면 안된다.)
3.View가 Model로부터 (직접적인?) 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야한다.
4.Controller는 Model과 View에 의존해도 된다.(Controller 내부에는 Model과 View코드가 있을 수 있다.)
5.View가 Model로부터 데이터를 받을 때, 반드시 Controller에서 받아야한다.
예제
.
.
.
MVC 패턴 장·단점
장점?
-쉽게 접근 가능
-개발기간이 짧을 수 있다.
단점?
-코드의 양이 많아져서 코드 복잡도가 높아진다.
-View와 Model의 의존성이 높으며 컨트롤러에 대한 의존성도 높다.
-View와 Model의 결합도가 높다.
-유지보수가 어렵다.
'개발공부 > 디자인 패턴' 카테고리의 다른 글
안드로이드 자바 MVVM패턴 이란? (0) | 2022.01.24 |
---|---|
안드로이드 자바 MVP패턴 이란? (0) | 2022.01.23 |
자바 및 코틀린 싱글톤(singleton) 패턴이란? (0) | 2022.01.21 |
자바 및 코틀린 추상 팩토리(factory)패턴이란? (0) | 2022.01.19 |
자바 및 코틀린 팩토리(factory)패턴이란? (0) | 2022.01.15 |