「Model View ViewModel」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | '''Model View ViewModel'''(略称:MVVM)とは、[[ユーザーインターフェイス]]([[UI]])を構築するための[[デザインパターン]] | + | '''Model View ViewModel'''(略称:MVVM)とは、[[ユーザーインターフェイス]]([[UI]])を構築するための[[デザインパターン]]のひとつである。 |
− | + | 勉強中。 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== MVVMの構造 == | == MVVMの構造 == | ||
21行目: | 8行目: | ||
いわゆる[[MVC]]パターンのモデルと同じものである。 | いわゆる[[MVC]]パターンのモデルと同じものである。 | ||
− | プレゼンテーション層、ドメイン層、データソース層の3層からなる[[ドメイン駆動設計]] | + | プレゼンテーション層、ドメイン層、データソース層の3層からなる[[ドメイン駆動設計]](通称:DDD)の思想に乗っ取れば、モデルはドメイン層に相当するものであるが、一般的にはその下のデータソース層までを含む。それどころかデータソース層にSQLなどを用いて読み書きしているだけというシステムも多い。 |
=== ビューモデル(ViewModel) === | === ビューモデル(ViewModel) === | ||
− | + | MVVMにおけるビューモデルとは、操作とデータに対する純粋な表示を受け持つ部分である。 | |
大雑把にいえば「UI(ビュー)を仮想化(抽象化)したもの」である。 | 大雑把にいえば「UI(ビュー)を仮想化(抽象化)したもの」である。 | ||
44行目: | 31行目: | ||
極端に言えば、[[パソコン]]向けのUI(ビュー)と[[iPhone]]向けのUI(ビュー)が別物であっても、ビューモデルに定義される「操作」は同一にできるという話である。ただし私の知る限りではMVVMは単体テストを捗らさせる目的で使っているものばかりであり、マルチプラットフォームのために使用しているという事例は実際には見たことも聞いたこともない。 | 極端に言えば、[[パソコン]]向けのUI(ビュー)と[[iPhone]]向けのUI(ビュー)が別物であっても、ビューモデルに定義される「操作」は同一にできるという話である。ただし私の知る限りではMVVMは単体テストを捗らさせる目的で使っているものばかりであり、マルチプラットフォームのために使用しているという事例は実際には見たことも聞いたこともない。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== 関連項目 == | == 関連項目 == | ||
62行目: | 36行目: | ||
** [[Model View Controller]] | ** [[Model View Controller]] | ||
** [[Model View ViewModel]] | ** [[Model View ViewModel]] | ||
+ | |||
+ | ; 主なMVVMフレームワーク | ||
+ | * [[WPF]] | ||
+ | * [[knockout.js]] | ||
== 参考文献 == | == 参考文献 == | ||
{{reflist}} | {{reflist}} | ||
+ | |||
+ | == 外部リンク == | ||
{{stub}} | {{stub}} |