はかせのラボ

私の頭の中を書いていく雑記ブログです

プログラミング MVPパターン ~設計偏~

あいさつ

どうも、はかせです。
前回までは理論とメリットを話しました。
今回は実装する前段階として設計をやっていきます。

まずは設計

実装をする前にはしっかり設計をしていきましょう。
設計は大事です(戒め)

とはいってもMVPそのものの設計はそんな多くないです。
図にするとこんな感じ
f:id:hakase0274:20190319233710p:plain

究極論MVPパターンってのはUIとロジックを別離して
それぞれの中継役を作れば成立します。

ただこのまま作るとMVPパターン的にちょっとうーんって感じになります。
このまま行くとModelはPresenterを知っている必要がありますし、
ViewはPresenterを知っている必要があります

PresenterがModelとViewを知っているのは中継役だから仕方ないとしても
ModelとViewは結果を公開しますが誰がデータを受け取るなんて
こいつらにとっては心底どうでもいいことのはずです。
つまりこうしたいです。
f:id:hakase0274:20190319235302p:plain

要は中継役であるPresenterが監視役となって
値の変更をそれぞれのレイヤーに伝える形ですね。
こうすることでModelはModelで完結できますし、
ViewはViewで完結できます。
UIとロジックを完全に別離できます。

ただこのままでも少し足りません。
なぜならModelもViewも確かに独立してますが
情報を全て内側に隠してしまっているため
Presenterが監視しても変更されたかどうかわからないからです。

なのでこんな感じで
f:id:hakase0274:20190319235723p:plain
外部に伝えるべき値を通知する機能を付けるとしましょう。

とりあえずざっくりとですが設計はこんな感じにしましょう。

あとがき

今回は設計編でした。
次回はこの設計をもとに実装をしていきます。
(色々やってたらブログ書く時間が無くて超焦ってます)

それでは今回はこの辺でノシ