0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【モデル設計とは?】MVCとMVVMについて解説

0
Posted at

システム開発を学び始めると「モデル設計」や「MVC」「MVVM」といった言葉をよく見かけます。

ですが最初は、

  • モデルって何?
  • MVCとMVVMって何が違うの?
  • 結局何を意識すればいいの?

と混乱しがちです。

この記事では、「モデル設計の基本」と「MVC / MVVMの違い」をシンプルに解説します。


モデル設計とは何か?

まず結論から言うと、モデル設計とは:

データとそのルール(ビジネスロジック)をどう表現するかを考えること

です。


モデル = データ + ルール

よく誤解しがちですが、

❌ モデル = データだけ
⭕ モデル = データ + ルール

です。

例えば:

  • 名前やIDなどの情報 → データ
  • 値の制約や条件 → ルール

例(イメージ)

class Sample {
  String name;
  int age;

  void validate() {
    if (age < 0) {
      throw new IllegalArgumentException();
    }
  }
}

このように、

  • データを持ち
  • そのデータの正しさも管理する

のがモデルの役割です。


なぜモデル設計が重要なのか?

モデル設計が適当だと、次のような問題が起きます。

  • ロジックがバラバラに散らばる
  • 同じチェック処理があちこちに書かれる
  • バグが増える

逆にモデル設計がしっかりしていると:

  • 修正しやすい
  • バグが減る
  • 見通しが良くなる

MVCとは?

MVCは「役割分担」の設計パターンです。

それぞれの役割は以下の通りです:

要素 役割
Model データとロジック
View 画面表示
Controller 処理の制御

MVCの流れ

ユーザー操作
   ↓
Controller(処理を受け取る)
   ↓
Model(データを処理)
   ↓
View(結果を表示)

ポイント

  • Modelにロジックを持たせる
  • Controllerは「指示役」に徹する
  • Viewは表示だけに集中する

よくあるNGパターン

❌ Controllerにロジックを書きすぎる

if (age < 0) throw ...
if (name == null) throw ...

👉 本来はModelに書くべき


MVVMとは?

MVVMも役割分担の考え方ですが、主にフロントエンドで使われます。

要素 役割
Model データとロジック
View 画面
ViewModel ModelとViewの橋渡し

MVVMの構造

Model ←→ ViewModel ←→ View

MVCとの違い

一番の違いはここです:

Controllerの代わりにViewModelがある


MVVMの特徴

  • データの変更が自動で画面に反映される(データバインディング)
  • UIとロジックの分離がより強い

イメージ

  • Modelの値が変わる
  • ViewModelがそれを検知
  • Viewが自動更新される

MVCとMVVMの違いまとめ

項目 MVC MVVM
主な用途 サーバーサイド フロントエンド
中間層 Controller ViewModel
データ反映 手動 自動
難易度 比較的やさしい やや難しい

押さえるべきポイント

一番重要なのはこれです:

モデルにロジックを持たせること


よくある誤解

❌ モデルはDBのテーブル定義
⭕ モデルは「データ + 業務ルール」


まとめ

  • モデル設計は「データとルール」を設計すること
  • MVCは役割分担(Model / View / Controller)
  • MVVMはUI寄りの設計(ViewModelがポイント)
  • ロジックはできるだけモデルに寄せる

おわりに

勉強していて気が付いたこととして最初はMVCやMVVMの違いよりも、

  • 「どこに責任を持たせるか」
  • 「ロジックをどこに書くべきか」

を意識することが大切だと感じました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?