티스토리 뷰

Development/C#

MVC 패턴의 구성 및 구현 방법

알 수 없는 사용자 2008. 6. 13. 12:32
반응형

MVC의 구성에대해 알아보고 MVC구현방법 및 주의 사항을 알아보도록 하겠습니다.


MVC 구성

 

MVC 패턴에서는 유저가 입력한 데이터와 외부 출력을 위한 모델, 유저의 응답 처리하는 세가지 타입 오브젝트로 명백히 구분하고, 각 오브젝트들은 자신이 맡은 임무에 대해서만 책임진다.

 

Model-View-Controller 디자인 패턴(이하 MVC)에서는 유저 인터페이스를 위해

다음과 같은 3개의 독립된 클래스를 사용한다.

 

Model

         데이터를 저장하고 인터페이스에 대한 애플리케이션 로직을 제공한다.


View

         인터페이스를 출력한다.(일반적으로 화면에 출력)

 

Controller

         Model을 변경하고 유저의 입력에 반응한다.

 

 

 

2.1 모델, , 컨트롤러 클래스로 분리함으로써 얻는 이점

 

*동일한 정보(모델)로부터 다양한 표현()들을 만들어 낼 수 있다.

*컴파일타임과 런타임에서 유저 인터페이스()를 손쉽게 추가, 제거, 변경할 수 있다.

*컴파일타임과 런타임에서  유저의 입력(컨트롤러)에 대한 반응을 변경하기가 쉽다.

*재사용이 용이하다.(예를 들어, 뷰를 다른 모델과 함께 사용할 수도 있다.)

*다수의 개발자들이 다른 소스 코드에 영향을 주지 않고 애플리케이션의 입력, 인터페이스, 로직 등을 동시에 업데이트 할 수 있다.

*개발자가 애플리케이션의 한 부분에만 집중하여 작업할 수 있도록 도와준다.


 

 

MVC 구현 방법

1. 뷰는 유저가 입력한 데이터를 받고 컨트롤러에 전달한다.

2. 컨트롤러는 뷰로부터 유저의 입력을 받는다.

3. 컨트롤러는 유저의 입력에 반응하여 모델을 변경한다.(경우에 따라, 컨트롤러가 뷰를 직접 변경하고 모델을 전혀 업데이트 하지 않기도 한다.)

4. 모델은 컨트롤러부터의 업데이트를 기반으로 변화한다.

5 모델은 해당 변화를 뷰에 알ㄹ니다.

6. 뷰는 유저 인터페이스를 업데이트 한다.(예를 들어, 몇 가지 방식으로 데이터를 표현할 수 있는데, 비주얼 컴포넌트를 다시 그리거나 사운드를  재생한다.)

 

 

주의점

*뷰는 항상 하나의 컨트롤러 인스턴스를 가져야 한다.(아무런 값이 없는  Null을 저장하고 있더라도)

ex) 그래프나 사용자 입력을 원치 않는 뷰

 

*모델은 데이터와 로직을 관리하고, 뷰는 인터페이스를 생성하며, 컨트롤러는 입력된 데이터를 처리한다.

예제 소스는 http://devangelma.tistory.com/162 여기서 다운받으세용.

반응형
댓글