MVC 패턴과 관련하여이 문제를 각도의 분리 각도로 보지 않고 조사하고 있지 않습니까? 내가 보는 방식대로 MVVM을 MVC와 비교합니다.
MVVM에 대한 접근 방식에는 View-First, ViewModel first 및 Marriage 유형이 있습니다. 나는 결혼 유형을 사용하여 View와 ViewModel을 결혼하는 또 다른 클래스를 가질 수 있습니다. 이 클래스는 무엇보다 먼저 View를로드하고 View 및 ViewModel을 인스턴스화 한 다음 두 가지를 모두 결합합니다.
이 예와
public class SomeScreen : ScreenBase, IScreen
{
[Import(typeof(ISomeViewModel))]
public IViewModel ViewModel
{
get { return this.GetPropertyValue(ApplicationProperties.ViewModel); }
set {
this.SetPropertyValue(ApplicationProperties.ViewModel, value);
RaisePropertyChanged(ApplicationProperties.ViewModel);
}
}
#region Constructor
public MainScreen()
{
CompositionInitializer.SatisfyImports(this);
}
#endregion
#region Methods
public override IView GetViewToDisplay()
{
IView view = new MainView();
//Or maybe have a mechanism here based on settings which view to pair up with this.
view.ViewModel = this.ViewModel;
this.ViewModel.View = view;
return view;
}
#endregion
}
, 그들 사이에 총 분리 때문에 인터페이스의 종속물이있을 것입니다 그리고 당신은 너무 화면/컨트롤러 기능의 전체를 많이 추가 할 수 있습니다.
그렇다면 ViewModel이 MVVM에서 컨트롤러 역할을합니까? – Arseny
요점은 그것이 분리되어서는 안된다는 것입니다 : 그것은 분리의 원칙을 위반합니다. 보기의 상태를 유지하고보기 및 모델의 논리를 조율하는 것은 분명히 분리되어야하는 두 가지 큰 작업입니다. MVC의 C 뒤에 그 이유가 있습니다. – user310291