回答編集履歴

1

見直しキャンペーン中

2023/07/27 15:19

投稿

TN8001
TN8001

スコア9405

test CHANGED
@@ -1,39 +1,20 @@
1
1
  R0KUさんの所望の回答になっていないだろうという自覚はあります^^;
2
2
 
3
-
4
-
5
3
  > 「それはModel内のステートの不完全な意味のないコピーでしかありません。」
6
-
7
4
  > (括弧内は、某MVVMに関するブログより引用。)
8
5
 
9
-
10
-
11
6
  有用ならば別に伏せる必要もないでしょう。尾上雅則さんですよね(ここでいいのかな??
12
-
13
7
  [MVVMのModelにまつわる誤解 - the sea of fertility](http://ugaya40.hateblo.jp/entry/model-mistake)
14
8
 
15
-
16
-
17
9
  上記引用のすぐ上ですが、
18
-
19
10
  > Modelのメソッド呼び出しは何をもたらすのでしょうか?。それはModel内状態の変化(あるいは外部サービス呼び出しとそれに伴うModel内状態の変化)と、なんらかのイベント発生(通信エラー発生とか)しかないのです。ViewModelがModelの影であれば当然それしかないのです。
20
11
 
21
-
22
-
23
- と、質問の例ですと`VM `と`Account`がVM・Mとなって、`AccountManager`は(外部サービス呼び出しのための)サービス層として`Account`がアクセスするように読めました(そうでもないです?あまり自信はありません^^;
12
+ と、質問の例ですと`VM`と`Account`がVM・Mとなって、`AccountManager`は(外部サービス呼び出しのための)サービス層として`Account`がアクセスするように読めました(そうでもないです?あまり自信はありません^^;
24
-
25
-
26
13
 
27
14
  サービスは戻り値があってもいいですし、例外でもいいわけです(いいんですよね?^^; `AccountManager#Register`の話)
28
-
29
15
  エラーを`UserName`や`Password`に紐づけられればそうしますし、それ以外のエラーはログイン状態のようなプロパティに充ててもいいでしょう(あるいは`Messenger`的なもの?)
30
-
31
-
32
16
 
33
17
  つまり`Action`や`delegate`は使いません。`INotifyDataErrorInfo`の範囲内で処理します。
34
18
 
35
19
 
36
-
37
-
38
-
39
20
  なんにしろ丁寧なエラー通知をしようとすれば、どこかで面倒なことになるのは避けられないんじゃないでしょうか。