ViewModel이 Model을 생성하는 것은 좋지 않다고 생각하는 것
Model을 ViewModel이 만들어야합니까?
때때로 볼 수있는 MVVM 코드의 샘플로, ↓와 같은 것이 있습니다.
MyViewModel.cs
public MyViewModel
{
MyModel _Model;
public MyViewModel()
{
// モデルのインスタンスを生成
_Model = new MyModel();
}
}
다만, 스스로는 위화감 있어...
무엇이 (자신적으로) 이상하다고 느끼는지
"ViewModel은 Model의 그림자인 것인데, 왜 Model이 View에 의존해 돈넨..."
어떤 경우에 문제입니까?
서로 다른 모델간에 상호 작용하려면 모델을 참조하기 위해 ViewModel을 만듭니다.
→ 왜 Model이 ViewModel에 의존하고 있습니까?
예를 들어 백그라운드 (=보기가 없을 때)를 실행하려면 창 (=보기)을 만들어야합니다.
→ 왜 Model이 (ry
어떻게 할까
자신이 잘하는 것이 Singleton 클래스에 Model을 갖게하는 방법
Workspace.cs (Model 레이어)
public Workspace : Singleton
{
public static Workspace Instance
{
....
}
public Model MyModel {get; private set;} = new MyModel();
}
MyViewModel.cs
public class MyViewModel
{
MyModel _Model;
public MyViewModel()
{
_Model = Workspace.Instance.Model;
}
}
물론 VisualStudio와 같은 IDE에서는 프로젝트 파일 (솔루션 파일)마다 관심있는 Workspace를 만드는 등 Model을 올바르게 분할하는 궁리가 필요합니다.
View가 Model을 만들어도 문제가 없다면
직렬화 할 생각이나 다른 Model과의 연계도 없으며, Window가 나올 때만 편집하고 싶은 데이터 (View의 수명과 거의 같은 수명의 Model)라면 그다지 문제없는 생각이 듭니다.
반론 · 반례가 있다면 의견을 주시면 감사하겠습니다.
Reference
이 문제에 관하여(ViewModel이 Model을 생성하는 것은 좋지 않다고 생각하는 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nossey/items/72b63c64b00503367a69
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public MyViewModel
{
MyModel _Model;
public MyViewModel()
{
// モデルのインスタンスを生成
_Model = new MyModel();
}
}
public Workspace : Singleton
{
public static Workspace Instance
{
....
}
public Model MyModel {get; private set;} = new MyModel();
}
public class MyViewModel
{
MyModel _Model;
public MyViewModel()
{
_Model = Workspace.Instance.Model;
}
}
Reference
이 문제에 관하여(ViewModel이 Model을 생성하는 것은 좋지 않다고 생각하는 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nossey/items/72b63c64b00503367a69텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)