MVVM(Model - View - ViewModel)
Model: 데이터구조정의 해서 ViewModel에게 결과를 알려줌, View와 이어지지않음
private var todoListVM: TodoListViewModel!
//todoListVM : ViewModel, todoList: Model
// todoList에 데이터 들어가있는 상태
self.todoListVM = TodoListViewModel(todoList: todoList)
View: ViewController, cell 에 코드작성. 사용자와 상호작용이 일어나면 ViewModel에 알려주고, ViewModel이 요청한 데이터를 보여줌(화면에 전달)
ViewModel: MVC에서 ViewController 역할. 상호작용에대한 역할에 걸맞는 이벤트를 처리, Model의 Read Update Delete 담당
음 그냥 ViewController에서 extension부분이나 데이터 처리부분을 가져가는 건가
추가 -------------
MVVM에서 ViewModel 은 데이터 업데이트 및 뷰요소 업데이트 하는데 사용
MVVM 장점 :
1. View, Model, ViewModel 독립적 테스트 가능
2. Controller에서 하던 데이터 가공을 ViewModel에서 해서 Controller 의 의존성을 내리고, Controller 의 코드가 길어지는 것을 막음
추가 -------------
MVC 에서 MVVM 으로 코드 변경을 해보았는데 ViewController을 300 줄에서 250줄 까지 줄일 수 있었다.
많이 줄어든건가 잘모르겠다. 더큰 프로젝트를 하면 더 좋은 효과가 있을 것 같다.
'CS > CS' 카테고리의 다른 글
[CS] Linked List, 배열 차이점 (0) | 2022.03.31 |
---|---|
[CS] RESTful API (0) | 2022.03.07 |
[CS] Dependency Injection (0) | 2022.01.13 |
[CS] 프로토콜, 인터페이스 차이 (0) | 2022.01.12 |
[CS] 함수형 프로그래밍 (0) | 2022.01.12 |
댓글