1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MVCモデル

Last updated at Posted at 2021-09-26

はじめに

SIerに入社して、早半年が経ちました。新人研修時にWebアプリケーションのアーキテクチャとしてMVCモデルを学ぶ機会がありました。最近になって、そのMVCモデルを振り返ることがあったので、今現在の自分のMVCについての考えをまとめてみたいと思います。

MVCモデル

システムを構成する部品の役割をModel,View,Controllerという3つに明確にして、開発効率の向上・保守性の向上を目指したシステムの設計モデル。OOP向けのアーキテクチャ。

 Model

アプリケーションにおけるデータの保持や業務処理を実行する部品。
中でも
データの保持を行う部品を、エンティティ(RDBの表の一行と対応)やDTO(複数のエンティティからプロパティを取得したもの)と呼び、
DBにアクセスし表のCRUD操作を行う部品をDAO(データアクセスオブジェクト)と呼び、
業務処理の流れを記述する部品を(業務)LogicまたはServiceと呼ぶ。

 View

ユーザーとシステムのインターフェースとして提供され、データの入力・表示画面となる部品。具体的には、JSPやHTMLのこと。

 Controller

アプリケーションの動作を制御する部品。クライアントとからのリクエストを受け付けて、Modelに属する業務Logicを起動し、その結果をViewに引き渡す役割を果たす。
この部品をサーブレットと呼ぶ。

 疑問点

・DAOとRepositoryの違いって?
Spring Bootでは、Repositroyパッケージに、CRUD用のインターフェースを用意していたので気になった。DAOパターンとRepositoryパターンというデザインパターンがあるらしい。

・Modelは、OOP的なアーキテクチャなのか?
Model中に、データとロジックがまとめられているのは、OOP向けのアーキテクチャのためらしい。確かに、Modelの中に、データとロジックがまとまっているが、実情は、DTOやServiceとしてデータとロジックは分離されているように見える。これは、OOP的なアーキテクチャなのか?

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?