狠狠撸

狠狠撸Share a Scribd company logo
Model View Presenter
for
Android
自己绍介
釘宮 愼之介 / @kgmyshin
自己绍介
?
Androidエンジニア
!
福岡県出身
!
5月からフリーランスか転職か
勉強会(ダンジョン)に出会いを求めるのは間違っているだろうか
ところで、
特に去年くらいから
MVPって
聞きませんか?
Model View Presenter for Android
Model View Presenter for Android
Model View Presenter for Android
そもそも惭痴笔とは?
基本的にはMVCなんだけど、
違いとしては
Viewがユーザからのイベントを
一切処理せずに
全てPresenterに移譲して
ModelにはPresenterからアクセスする
というのがある
ドメイン層
プレゼンテーション層
Presenter
Model
View
タッチなどのイベント
移譲
然るべき
Modelのinterfaceをcall
ModelからのfeedbackはObserverPatterを用いて、View or Presenterへ通知するか
呼び出したPresenterにCallbackで返却するかのどちらでも良いと思う。
セオリーは前者だけど、githubのソースとか見ると後者の方が多い感じ。
return
return値をもとに
Viewを操作
なぜ今 MVPなのか?
AndroidでMVCを
適用する際の問題点
Activity (Fragment)を
Controllerか
Viewか
奇麗に分けきれない
ControllerなのかViewなのかで
たまに言い争ってるのを
みかけることもしばしば。
android best practicesでも
activityとfragmentって
Controllerでもあるし
Viewでもあるよねって言ってる。
https://github.com/futurice/android-best-practices
多重责务
でも
MVPで設計すれば
この問題は解消される
なぜなら、
Activityから
Controller足り得る要素を
完全に抜き取って
Viewにすることができるから
ドメイン層
プレゼンテーション層
Controller
Model
View
タッチなどのイベント
Activityが
この位置に居るので
Model関連の処理を
Activityに書く事になる
Model View Controller
Activity
ドメイン層
プレゼンテーション層
Presenter
Model
View
タッチなどのイベント
Activityが
この位置に居るので
Modelと疎になり
書くべき事が減る
移譲
Model View Presenter
Activity
MVPを用いる事で
Activity(Fragment)は
明確にViewになる
まとめ
?
?
その結果、Activityが煩雑に
なりづらくなる

More Related Content

Model View Presenter for Android