2012-10-29 1 views
2

Javascript (WinJS) 및 HTML을 사용하여 간단한 Windows 8 LOB 응용 프로그램을 작성합니다. 응용 프로그램에서 제 3 자 종속성을 갖고 싶지 않습니다. 응용 프로그램 구조를 결정할 때 어떤 패턴이 기술과 WinJS 프레임 워크에 가장 잘 맞는지 토론하고 있습니다.WinJS : MVVM, MVP 또는 MVC가 더 잘 맞습니까?

이러한 패턴을 사용했을 때의 주요 장점/단점에 대한 초기 생각은 다음과 같습니다.

MVVM

MVVM

  • 프로 : 뷰 모델에서 비즈니스 로직을 완전히 분리 만들기 (단위)를 BL 쉽게
  • 콘 테스트 : WinJS는 하나의 시간을 가지고 있으며, 상자에서 구현 된 단방향 데이터 바인딩, 양방향 데이터 바인딩 및 명령 (이벤트에 바인딩)은 그렇지 않습니다. 이것들은 사용자 정의 방식으로 구현되어야합니다 (뷰에서 주로 선언적 구문을 사용하려는 경우 까다로울 수 있습니다).

MVP

MVP

  • 프로 : 발표자가 여전히 뷰 로직과 함께 모든 비즈니스 로직을 포함하고 (단위) 자체 테스트 할 수 있습니다. 이 접근 방식에서는 데이터 바인딩이 필요하지 않습니다.
  • 단점 : MVVM의 경우보다보기 및 발표자 코드가 더 자세하게 표시되므로 상태 변경에 대해 서로 알릴 필요가 있습니다. 보기에서 이벤트를 발표자로 전달해야하며 발표자는 상태가 변경되면보기를 업데이트해야합니다.

MVC

MVC

  • 프로 :보기는 매우 가볍고 데이터가 하나 이러한 접근 방식 필요하지 바인딩.
  • 단점 : 컨트롤러가 비즈니스 로직을 포함 할뿐만 아니라 입력 이벤트 (예 : 키보드 및 마우스 이벤트)를 등록하고 처리해야합니다. MVVM의 ViewModel 및 MVP의 Presenter와 비교하면이 클래스는 가장 부풀어 오르고 (단위) 테스트가 다소 어려울 것입니다.

이 항목을 기반으로이 앱을 빌드 할 때 MVP를 선택합니다. 이 점이나 모순에 동의 할 수 있습니까?

+3

토론을 생성 할 가능성이있는 폴링이나 질문은 주제와 관련이 없습니다. – mydogisbox

+0

"최상의"접근 방식은 없습니다. 유스 케이스에 전적으로 의존합니다. –

답변

2

나는 당신이 다른 디자인 패턴과 좋은 그래픽을 설명하는 방식 좋아했기 때문에 뭔가를 게시합니다

이 가 MVVM에 대한 귀하의 사기꾼이 있다는 것입니다

(BTW를, 당신이 그에 소스를해야합니까? 당신은 그것을 포함한다) 양방향 업데이트는 사용자 지정 방식으로 구현되어야합니다. 그러나 MVP 패러다임을 사용하면 어쨌든이를 사용자 지정 방식으로 수행해야합니다. MVP를 사용한다면 전혀 데이터 바인딩을 사용하지 않습니까? MVVM을 사용하여 WinJS 문제를 해결할 수있는 방법을 찾아야합니다. WinJS에 익숙하지는 않지만 커스텀 객체/속성에서이를 감쌀 수 있고 어떤 방식 으로든 데이터 바인딩을 처리하기 위해 이벤트가 변경 될 수 있습니다.