ページ 11

ドキュメント/ビュー アーキテクチャにおけるドキュメント管理方法について

Posted: 2016年7月18日(月) 13:10
by kame
ドキュメント/ビュー アーキテクチャにおけるドキュメント管理方法について確認させてください。
(ここで、「ドキュメント」というのは、シリアライズしたいデータを指しています。)

例えば、エクセルのようなアプリをドキュメント/ビュー アーキテクチャで作成する場合、
ユーザ操作によりビュー上のデータ(セル)が変更されたと同時に、
ドキュメントクラスへ変更データを書き込みにいくべきでしょうか?
(セルクラスでも値を保持しているが、それと同じデータをドキュメントクラスへ書き込みに行く。ドキュメントとビューの値を常に同期させる考え。)

それともある任意のタイミング、例えば保存ボタンが押されたタイミングで、ドキュメントクラスへ変更データを書き込みにいくべきでしょうか?
(シリアライズデータとドキュメントクラスのデータを同期させる考え。
変更を確定するまではドキュメントクラスとビュークラスの値に不一致が生じるが、簡単なUndoを実装するのによさそう?)

あるいは他に定石があれば教えてください。

よろしくお願いします。

Re: ドキュメント/ビュー アーキテクチャにおけるドキュメント管理方法について

Posted: 2016年7月18日(月) 14:14
by たいちう
> あるいは他に定石があれば教えてください。

ビューが同期すべきデータを持たないのが理想なのでは?
ユーザがセルを操作したら、ビュークラスはドキュメントクラスの更新用メソッドを呼び出し、
自分自身やセルクラスの再描画メソッドを呼び出します。

セルクラスの描画に必要なデータはドキュメントクラスしか持っていないので、
セルクラス描画時には、ドキュメントクラスのデータ取得用メソッドを呼び出します。

Re: ドキュメント/ビュー アーキテクチャにおけるドキュメント管理方法について

Posted: 2016年8月01日(月) 00:53
by kame
回答ありがとうございます。
参考にさせていただきます。