2011-01-10 8 views
13

최근에 MVVM 패턴을 사용하기 시작했습니다. 몇 가지 프로젝트를 사용했는데 새로운 프로젝트가있을 때마다이 프로젝트가 새 프로젝트에 적합하다는 것을 알기 시작했습니다.MVVM을 사용하지 않을 때?

이제는 상황이 더 좋을 때 스스로에게 물어보기 시작합니다. 아니요 MVVM을 사용하는 경우입니다. 아니면 어디에서나 사용할 수있는 멋진 패턴입니까?

MVVM이 최선의 선택이 아닌 몇 가지 시나리오를 설명해 주시겠습니까?

답변

8

나는 MVVM을 사용하지 않는 두 가지 상황을 생각할 수 있습니다.

보기 모델과 모델을 구분할 필요가없는 응용 프로그램이면 충분합니다. INotifyPropertyChangedRelayCommand 또는 2를 구현하면 클래스가 너무 많아 질까요? 그렇지 않은 경우 별도의 클래스를 만드는 단계를 건너 뛸 수 있습니다. 아니면 뷰잉 모델로 기능 UI를 조롱하고 클라이언트가 물린다면 실제 백엔드 기능을 구현하는 것에 대해 걱정할 수도 있습니다.

다른 하나는 성능이 충분히 높아야하고 뷰에 충분한 개체가있어 WPF 개체를 직접 조작하는 코드를 작성해야합니다.나는 실제로 그것을 벤치마킹하지는 못했지만, 배열을 반복하여 1000 개의 움직이는 입자를 그려서 TranslateTransform을 직접 수정한다고 확신 할 수 있습니다 (실제로 가장 빠른 위치에 배치하는 경우). 기본 속성을 수정하고 바인딩하는 것보다 빠릅니다.

+0

두 번째 시나리오도 생각해 봤지만 MVVM을 사용하여 얼마나 많은 성능을 느꼈는지 확신 할 수 없습니다. MVVM을 사용하여 성능에 대한 불이익을 파악하고 직접 속성을 조작하는 대신 데이터 바인딩을 사용하는 것이 좋을 것입니다. 너무 작아서 문제가되지 않을 수도 있습니다. – Vitalij

3

작은 프로젝트를하고 싶지 않거나 여러 가지 방법 (WPF/Silverlight/WEB/Dll)으로 실행하지 않을 계획이라면 MVC이면 충분합니다.

6

MVVM은 특정 순간에 사용되지 않고 절대 사용되지 않는 도구 인 경우에만 사용합니다.

많은 "작은"프로젝트에서 나는 시작하지 않고 시작했으며 나중에 MVVM으로 변경했습니다. 프로젝트 IMO를 훨씬 더 깨끗하게 만들고 모든 프로젝트에 유사한 구조를 제공합니다. 이렇게하면 클라이언트가 작은 요청을하는 경우 일부 노인 코드에서 빠르게 변경하는 데 많은 도움이됩니다. 나는 나에게 많은 시간을 할애하지 않는다.

또 다른 장점은 라이브러리를 깨끗하게 유지하는 것이 더 쉬울 수 있습니다. 한 가지 기술에만 집중할 수 있고 따라서 유지 관리 및 확장에 더 많은 시간을 할애 할 수 있기 때문입니다.

4

모두 당신이하고 싶은 일에 달려 있습니다.

사람들이 말했듯이, 대규모 테스트 등이 필요하지 않은 작은 도구 나 프로젝트를 만들면 MVVM이 과도하게 사용됩니다.

아마도 MVVM의 주된 장점은 비주얼 레이어에서 추상화 된 코드 단위를 테스트 할 수있게 만드는 것입니다. 신뢰할 수 있어야하고 고객 등 (그리고 최종 사용자로서의 자신 만이 아닌)이 사용해야하는 대규모 프로젝트의 경우 MVVM은 사용할 좋은 디자인 패턴입니다.

나는 간단히 말해서 생각 - 당신은 단순히 다음 MVVM 요는 바주카 :

2

짧은 대답과 개미 죽이기 시도하는 것과 같다 주위에 혼란에 작은 프로젝트를 만드는 경우 :는 사용하지 마십시오을 WPVM/Silverlight/강력한 자동 바인딩으로 알고있는 모든 기술을 사용하지 않는 경우 MVVM.

긴 답변 : 다른 패턴은 WPF/Silverlight에서 MVVM보다 더 나은 단위 테스트를 용이하게합니다. 다른 답변을 살펴 보시기 바랍니다 : Why should I use MVVM in Silverlight app?

관련 문제