3
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?

More than 3 years have passed since last update.

MVPモデルについて

Last updated at Posted at 2021-04-18

#はじめに
この記事では、MVPモデルについて簡単にまとめました。
⚠️当方初学のため認識違いがある可能性大です
誤りを見つけた際はコメントにて指摘していただけると幸いです🙇‍♀️🙇‍♂️

#参考
この記事は、以下の情報を参考にして執筆しました。

#MVPモデルとは
image.png
(https://dev.classmethod.jp/articles/backbonejs-mvp/ から引用)
Presenter : Viewから移譲を受け、Modelに変更指示を送る。Modelからのコールバックを受けて,Viewを更新。
Model : 指示を受けて,自身を更新。
変更後,コールバックなどを行う。
View : 画面の描画担当。

また、MVPとMVCの違いは、MVCはオブザーバー同期に対して,MVPはフロー同期という点。
※なお、iOSアプリ設計パターンには、設計変更の動機,レイヤーの役割のどちらから見ても同じパターンだと考えてよいと書かれている。

#MVPの利点

  • テストが比較的書きやすい
  • protocolによって、レイヤー間の依存性を薄められる
  • 小規模な開発にはちょうど良い場合が多い
  • iOS開発に限って、ViewControllerから処理を減らせそう(MVC比較)

#Model
データ管理、またデータに関する操作および処理を定義。
Presenterから移譲された処理を実行(データの取得など)。
処理後、Presenterにコールバックを行う。
※iOS開発においては、import UIKitを書かない(UIを考慮しない)

#View
ユーザーが見る/操作する画面を表示。
Presenterにユーザから受けたイベントを移譲し、帰ってきた処理結果を表示。
データに影響を与える処理は一切書かない。

#Presenter
ModelとViewの仲介役。
Viewから受け取ったイベントをもとにModelに処理を移譲。
Modelの処理結果を受け取り、Viewに通知。
※iOS開発においては、import UIKitを書かない(UIを考慮しない)

3
0
1

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
3
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?