컴퓨터과학/디자인패턴
[디자인패턴] MVC 패턴
윤호
2021. 12. 12. 19:35
목적
업무 로직(Business Logic) 및 데이터(Model)와 보이는 부분(View)을 분리
요소
문제 : 데이터와 해당 데이터를 보여주는 부분(뷰)의 코드가 섞여있음
해결 : 데이터와 뷰를 분리하고 이들을 연동시키는 컨트롤러를 추가
결과 : loose coupling, 재사용성
설계
- 모델 : 데이터를 관리하는 부분
- 뷰 : 화면에 보이는 부분
- 컨트롤러 : 사용자의 입력을 처리하고, 모델과 뷰 사이에서 상호작용을 할 수 있도록 지원
MVC 패턴의 장단점
장점
- 클래스간 정보 공유를 최소화시킴 - 모델과 뷰가 서로에 대해 잘 몰라도 됨
- 같은 모델에서 여러 개의 뷰를 지원할 수 있음
단점
- 뷰가 업데이트 되어야 함을 알려줘야함 - 모델이 뷰에게 데이터를 직접 전달하는 것 보다 비효율적임
- 컨트롤러의 역할이 너무 커질 수 있음
reference : 상명대학교 조용주 교수님