본문으로 바로가기

[Java] 디자인 패턴 - 모델-뷰-컨트롤러 패턴

category TIL/Java 2022. 6. 1. 19:23

모델-뷰-컨트롤러(Model-View-Controller) 패턴

애플리케이션을 세 개의 영역으로 분할하고
각 구성 요소에게 고유한 역할을 부여하는 개발 방식
  • 각 컴포넌트는 자신이 맡은 역할만 수행한 후 다른 컴포넌트로 결과만 넘겨주면 되기 때문에 시스템 결합도 저하
  • 유지보수 시에도 특정 컴포넌트만 수정하면 되기 때문에 보다 쉽게 시스템 변경 가능
    (∵ 도메인(비즈니스 로직) 영역과 UI 영역이 분리)

구성 요소

  • 컨트롤러
    • 모델과 뷰를 이어주는 역할
    • 사용자가 실행한 변경 이벤트들을 처리
    • 모델과 뷰의 변경을 모니터링
  • 모델
    • 데이터의 가공을 책임지는 부분
    • 비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달
    • 사용자에게 보여지는 부분 (유저 인터페이스)
    • 받은 데이터를 화면에 표시
    • 모델에게 전달받은 데이터를 별도로 저장하면 안됨

 

  • 참조 횟수 스마트 포인터 객체

장점

  • 유지보수의 편리성

단점

  • 복잡한 대규모 프로그램의 경우, 컨트롤러가 불필요하게 커짐

[ 출처 ]

https://junhyunny.github.io/information/design-pattern/mvc-pattern/