MVP

MVPって聞いたことありますか?

最も活躍した人ではなく、
Model View Presenter の略です。

まぁ、簡単に言うとMVCみたいなもんですね。

MVCはWebアプリ開発ではよく耳にしますが、スマホアプリ開発では苦しいです。
なぜかと言うと、スマホアプリの場合はViewとControllerが一体化してしまっているから。
つまり、MVCでスマホアプリを開発しようとすると必然的にActivityないしはViewControllerが肥大化してしまいます。

これを回避するために使うパターンが今回のMVP。
あ、MVVMはまたの機会で!

ではざっくりとそれぞれの役割を…

Model

ModelについてはMVCでも同じ役割なので特に説明は不要ということでw

View

MVPではActivity、ViewControllerをViewとして扱います。
ユーザに見せる層の事。
当然、レイアウトファイルもこれに含まれる。
Viewでは表示部分とユーザ操作からの入力を基本的に処理する層で、基本的にその他の処理はやらない部分。

なのでユーザからの入力とかはViewで受け入れざるを得ないんだけど
入力に対しての処理はpresenterが行うイメージ。

Presenter

Viewからの処理受け入れやモデルへの指示、Viewへの指示を行う。
どちらかというとController的な役割をしてくれる部分。

マルチスレッド処理や、メインスレッドへの移動もこのPresenterが行う。はずw
複雑部分はUseCase作ってやってしまったほうがいいかも。
この辺の処理をいつも迷ってしまうのでそろそろ統一したいなぁ…

 

役割を明確にしてスパゲッティソースを脱出しよう!!!

Leave a Reply

Your email address will not be published. Required fields are marked *