2011-12-21 2 views
0

호세 스미스 비디오를보고 MVVM에 대한 자습서를 읽었지만 MVVM이 느슨한 커플 링, 즉 View 및 ViewModel 인 방법을 이해하지 못합니다. (여전히 MVVM을 처음 접했을 때만 그걸로 커플 프로젝트를 만들었습니다.)MVVM loose coupling은 MVP와 어떤 차이가 있습니까?

MVP에서 모든 View, Model, Presenter는 인터페이스를 가지고 있으므로 유닛 테스트를 대체하거나 조롱 할 수 있습니다.

MVVM에서는 View 또는 ViewModel에서 인터페이스를 사용하는 사용자가 표시되지 않습니다. 필자의 이해로 ViewModel은 Model에서 데이터를 추상화하고 View에 속성으로 표시하며 모델로 비즈니스 로직과 데이터 조작을 갖습니다.

.SaveData() 메소드와 View에서 사용되는 일부 속성이있는 ViewModel이있는 경우 인터페이스가없는 경우 다른 ViewModel로 대체하려면 어떻게해야합니까?

MVVM 느슨한 커플 링은 어떤 방법으로 설명 할 수 있습니까?

답변

1

MVVM은 인터페이스 측면에서 구현되기도합니다. MyViewModel 클래스가있는 경우 테스트 용으로 조롱받을 수 있도록 IMyViewModel도 구현합니다. 보기에도 마찬가지입니다. 따라서이 특정 의미에서 MVVM은 MVP와 다르지 않습니다.

"loose coupling"의 정의는 음 ... loose이므로 명확히하고 싶은 다른 것들이 있다면 좀 더 구체적으로 설명해야합니다.

참고 : MVVM에서는 SaveData 메서드 대신에 SaveDataCommand 속성을 사용하는 것이 관례입니다 (물론 명령은 어쨌든 메서드로 구현되지만).

+0

내가보기에 페이지의보기를 xaml의 인터페이스 유형으로 추가하는 방법이 있습니까? 또는 대부분의 사람들은 View 및 ViewModel을 프로그래밍 방식으로 추가합니다. 보기와 링크를 생성자의 ViewModel에 추가하는 것과 같습니다. (나는 당신이 의미하는 바를 이해하길 바란다.) –

+0

@KingChan : 예, 대부분 프로그래밍 방식으로 (그리고 의존성은 DI 컨테이너를 통해 각 객체에 주입 될 것입니다). – Jon

+0

감사합니다 지금 모두 의미가 있습니다! :) –

관련 문제