2011年11月8日火曜日

MVVMパターン・・・わからない・・・2


前回の記事の続きです!(日にちあいてしまったけど)

ugaya40さんが前回の記事にコメントしようとしてできなかったらしいので(今は誰でもコメントできるはず)Twitterからコピーします。

M-V-VMのMって何?に対してのご返答です。
====================
Mは、ユースケース定義書のようなものがあったとして(画面定義書はまだない)、そこから導出可能なすべてです。
TwitterクライアントでのMは、投稿するでしょうし、更新してイムラインを保持するでしょうし、
検索をするし、アカウントを取得したりするでしょう。

画面のイメージがない状態で、アプリケーションそのものの振る舞いをあらわすものです。見た目によらないアプリそのものっていうイメージですかね。よかったらこちらのスライドも読んでみてください。
「MVVMパターンが必要な理由」啓蒙用資料公開
====================
※↑ちょっとだけ修正しました。

Twitterという文字数が限られた中で教えて頂いてうれしかったです。ありがとうございます。
でも、やっぱりというかイマイチこれだけだとイメージが掴めなかったのでスライドを読みました。

MVVMパターンとは?(public)


で、このスライドを読んで&ugaya40さんに教えてもらって分かったのが
==========================
View => UI
ViewModel => Viewの状態の保持、入力値の保持、ついでに入力値の検証
Model => ビジネスドメイン
==========================
です!
Viewの状態の保持っていうのは上のスライドの25ページ前後にある例えが分かりやすいです。
画面外のチェックボックスはチェック状態を保持しないので、それに対応したプロパティを設けると。ボタンの有効、無効もプロパティにと。
状態の保持がViewModelにおける責務のメインだそうです。納得したっす。

さて、問題のModelです。
ビジネスドメインという言い方に慣れていないのでしっくりこないんですが、
要するに、機能のみを持った部分って認識で大丈夫かな?

で、例えば「(メニューから)編集 → コピー → クリップボードにコピー」という機能があった場合
~・~・~・~・~・~
編集、コピー(メニュー)はView
コピー対象を選択している場合[コピー]を有効にするのはViewModel
クリップボードにコピーをするのがModel
~・~・~・~・~・~
という具合に切り分ければいいのかな?

あれ?「選択している」ってどこで判断するんだ?
TextBoxの何かしらのイベント?・・・なのかな?

0 件のコメント:

コメントを投稿