0
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について簡単にまとめてみる

Posted at

iOSアプリ設計パターン入門を読んだので、アウトプットも兼ねて記事にしたいと思います。
今回はiOSアプリ開発でよく耳にする(iOSアプリ開発以外でもよく耳にする)MVCについて書いていきます。
まだ、この辺は勉強したてなので誤りとかがありましたら、ご指摘いただけると幸いです。

MVC

MVCはプログラムを「入力」「出力」「データの処理」と分けたときに、それぞれControllerViewModelと定義したものです。これらをレイヤーと呼ぶのですが、それぞれの役割は以下となります。

レイヤー 役割
Controller ユーザの入力を受け、Modelにコマンドを送る
Model コマンドを受けて処理を行い、自信を更新
View Modelの変更を監視し、自信を更新

となります。これらを図にすると以下のように表すことができます。
VCC構造.png
図で分かる通り、ViewがModelを監視し、ControllerはModelへメッセージを送る(ここでは処理の依頼)をして、それを受けModelは処理を開始します。
これが、MVCの簡単な概略になります。
しかし、現在のアプリケーション開発はMVCが登場した時よりも複雑になり、元のMVCでは対応が難しくなったり、ViewはModelに依存しているため、Viewno再利用ができないといった不満が出てきました。
そこで、誕生したのがAppleの提唱したCocoaMVCというものです。

CocoaMVC

CocoaMVCと元のMVCはどういった面で違いがあるのかを見ていきます。
まず、元のMVCは図で分かる通り、ViewがModelを監視している仕組みになっているため、これではViewは特定のModelに依存する作りになってしまいます。一方、CocoaMVCはViewとModelが完全に独立した形となっています。このためModelがどんな形になってもViewを変更せずに済むわけです。つまり、どんなModelでもViewを使うことができるわけですから、Viewの再利用ができるようになりました。

終わりに

さて、MVCとCocoaMVCの両方を簡単にまとめてみました。本当はコードを載せてMVCとCocoaMVCを比較したほうが良いのですが、それはまたの機会ということで今回はここまでにします。また、何回も書籍を読み直したり、調べたりして新しく知見を得られたら更新をしていきたいとい思います。
今回はここまで!!

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