回答編集履歴
1
ViewModelにCommandは置くべきでないという主張を撤回し、訂正しました。
answer
CHANGED
@@ -2,8 +2,11 @@
|
|
2
2
|
|
3
3
|
ざっくり説明するとModelクラスは「アプリに必要なデータ構造、データ処理、そして副作用の起点となるメソッド・コマンド・プロパティ」を持たせます。
|
4
4
|
|
5
|
-
一方でViewModelクラスは「VMはVとMを繋ぐだけ。Viewに渡すModelの交通整理をするのみに留める。ViewModelはデータ処理の知識を知ってる必要がないので、特に副作用が発生するCommandをViewModelに実装するべきではないはず」と個人的に理解しています。
|
5
|
+
一方でViewModelクラスは「VMはVとMを繋ぐだけ。Viewに渡すModelの交通整理をするのみに留める。~~ViewModelはデータ処理の知識を知ってる必要がないので、特に副作用が発生するCommandをViewModelに実装するべきではないはず」と個人的に理解しています。~~
|
6
6
|
|
7
|
+
> (2020/06/28 訂正)
|
8
|
+
ViewModelにCommandを置かないと、今度はModel側にCommandというViewの都合の一種が漏れてしまいます。Commandは極力ViewModelに置くべきです。結果的に誤った解釈を提示してしまい、すみませんでした。
|
9
|
+
|
7
10
|
この2点を理解した上で「ViewにVMを通じてModelを直接渡してUIを作っていく」とするのが一つの方針になるのかなと思います。
|
8
11
|
|
9
12
|
また、「Personクラスの出力処理をViewModelに書くのはModel的でNG、だけどどうすれば」という部分については、
|