MVC(Model-View-Controller)패턴을 기반을 둔 GUI(Graphical User Interface)를 만들기 위한 설계패턴이다. 즉, MVC 패턴의 여러 패턴 중 하나이다.
( 참고 : MVC 패턴은 너무나 잘 알려진 설계패턴으로 1979년에 제록스 팰러앨토 연구소에서 스몰토크 관련 일을 하던 Trygve Reenskaug에 의해 처음 설명되었으며, 아직까지도 가광을 받고 있는 패턴이다.)
MVP 패턴은 View와 Model 간의 결합도를 낮추는데 있으며, Presenter는 Model의 데이터를 View에 출력할 수 있도록 할 뿐만 아니라, 이벤트(Event)를 View에서 받아 Model의 데이터를 갱신하도록 한다. 실제 구현에서는 Presenter는 View와의 결합도를 감소 시키기 위해서, Interface를 참조한다. 이를 통해 Presenter는 View의 실제 UI요소가 어떻게 구현되는지에 관계없이 데이터를 올바르게 표현 하도록 하는 것 이다. 아래 그림을 참고하면 이해가 쉬울 것이다.
( 참고 : MVC 패턴은 너무나 잘 알려진 설계패턴으로 1979년에 제록스 팰러앨토 연구소에서 스몰토크 관련 일을 하던 Trygve Reenskaug에 의해 처음 설명되었으며, 아직까지도 가광을 받고 있는 패턴이다.)
MVP 패턴은 View와 Model 간의 결합도를 낮추는데 있으며, Presenter는 Model의 데이터를 View에 출력할 수 있도록 할 뿐만 아니라, 이벤트(Event)를 View에서 받아 Model의 데이터를 갱신하도록 한다. 실제 구현에서는 Presenter는 View와의 결합도를 감소 시키기 위해서, Interface를 참조한다. 이를 통해 Presenter는 View의 실제 UI요소가 어떻게 구현되는지에 관계없이 데이터를 올바르게 표현 하도록 하는 것 이다. 아래 그림을 참고하면 이해가 쉬울 것이다.
presenter => View와 Model간의 상호작용을 담당하며, Model의 데이터를 View Interface를 통해 Concrete View에 출력(바인딩)해주고, 사용자의 이벤트를 View에서 구독하여(실제적인 이벤트 핸들러 구현) Model의 데이터를 갱신하는 역할을 수행한다 보통 개발할때의 인덱스 소스부분.
view =>View Interface의 Display 맴버(Properties, Display Methods)를 구현하여 실제적인 UI요소를 그려준다
보통 개발할때의 스킨부분
view Interface => Presenter에서 Concrete View를 지접 참조하지 않고 View Interface를 참조함으로써 Concrete View와의 커플링을 감소시키고, View의 실제 UI 요소가 어떻게 구현되는지 몰라도 데이터를 올바르게 표현할 수 있도록 해준다 보통 개발할때의 스킨과 소스가 결합한 화면
model => 데이터와 상태를 유지하며, 데이터 처리 로직을 포함한다 보통개발할때의 각파트 처리파일
게시글 목록
| 번호 | 제목 |
|---|---|
| 15265 |
Mobile
맥부기카페
|
| 26093 | |
| 15262 |
Mobile
하이브리드앱 공부를 위한 추천책
2
|
| 3437 | |
| 15257 |
node.js
노드에 관심이 가기 시작했습니다.~~
4
|
| 3429 | |
| 15256 | |
| 15252 | |
| 15251 | |
| 15250 | |
| 15246 |
PHP
php로 이미지 흑백효과
3
|
| 15242 |
jQuery
jQuery 1.7 Cheat Sheet
3
|
| 3425 | |
| 3418 | |
| 15236 | |
| 3411 | |
| 15233 |
node.js
요즘 공부를 못하고 있습니다.
2
|
| 15229 |
jQuery
[jquery] 구글 jquery 호스팅
3
|
| 15228 |
Flash
[PODCAST]순위올리기
|
| 15226 |
node.js
node.js 설치하기
1
|
| 3399 | |
| 15224 | |
| 15217 | |
| 15195 |
jQuery
jquery 기본 예제
21
|
| 15193 | |
| 3373 | |
| 3360 | |
| 15188 | |
| 29852 | |
| 15181 |
JavaScript
윈도우 서버 사용자 - ddos
6
|
| 15159 | |
| 3350 | |
| 15158 | |
| 15157 | |
| 15152 |
node.js
nodejs, npm 설치시 오류 해결
4
|
| 15150 |
JavaScript
Bing 번역 API
1
|
| 3334 | |
| 15144 | |
| 15140 | |
| 3331 | |
| 15136 |
JavaScript
익스플로러 버전별 테스트
3
|
| 29848 |
HTML
브라우저별 개발모드
3
|
| 15129 |
node.js
nodejs 란.. [개발자게시판 펌]
6
|
| 15107 |
jQuery
질문해도 되나요?
21
|
| 3320 | |
| 15106 | |
| 15095 | |
| 29847 |
JavaScript
Http Live Stream 에 관하여
|
| 15094 | |
| 3314 | |
| 15091 |
jQuery
jQuery Mobile Event API
2
|
| 15089 |
node.js
저도 끼어도 되나요?
1
|
| 29834 |
JavaScript
img 자체에서 이미지 없을때 안보이게 하기
12
|
| 15088 |
node.js
앗 이게 뭔일이래요..^^
|
| 3303 | |
| 15085 |
node.js
명랑폐인님 얼른 오세요.
2
|
| 15084 | |
| 26091 | |
| 15083 | |
| 15073 | |
| 15071 | |
| 3290 | |
| 24301 | |
| 15067 |
JavaScript
js css 최적화 압축
3
|
| 3285 | |
| 3270 | |
| 15064 | |
| 29829 | |
| 15062 |
JavaScript
cron을 사용할 수 없으니 이런 방법도..
1
|
| 15053 |
jQuery
jquery 스크롤바
8
|
| 3261 | |
| 3252 | |
| 3249 | |
| 15050 | |
| 3243 | |
| 15046 | |
| 24291 | |
| 24278 | |
| 3231 | |
| 15042 |
Linux
sendmail 이 느려진 경우
3
|
| 24275 | |
| 3225 | |
| 26075 | |
| 15041 |
JavaScript
MVC model 로 구축해보자
현재글
|
| 3222 | |
| 3218 | |
| 15025 |
Flash
부드러운 슬라이드 만들기
15
|
| 15024 |
기타
셀렉트 태그 자동생성
|
| 15018 |
JavaScript
리눅스에서 오라클 10g설치 때
5
|
| 29821 | |
| 15015 |
jQuery
테이블 드래그..
2
|
| 15013 | |
| 15012 |
JavaScript
c# , Application 제작시 유용하게 사용 할 수 있는 에디터
|
| 3210 | |
| 3200 | |
| 3198 | |
| 24274 | |
| 15005 |
jQuery
jQuery each 거꾸로 반환하기
6
|
| 3188 | |
| 15001 |
JavaScript
사이트를 브라우저별로 테스트 해주는 사이트.
3
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기