makotan _at_ gmail dot com

モデルを・・・の疑問

モデルをViewと切り離して純粋なModelが作れたとして
ModelとViewを完全に切り離す事って出来ないよなぁ〜
っとおもって、View用のModelを作ったとしてもそれがModelに依存してる限り、Modelのinterfaceとして何らかの影響を受ける事には変わらない気がする


結局あらゆるシステムにおいてModelとViewが完全に切り離せることを証明出来ない限り、大多数のシステムでModelはViewの影響を受けたinterfaceを持つと考えるのが自然。
まぁ例外的にすごく向いてるシステムもあると思うけど、それはちゃんとModelを作れば良いと思うし


ModelはViewの影響をある程度受ける前提として、何処まで許容するかの範囲を考えれば良いだけだと。
完全な切り離しが不可能としても変更処理と表示処理は影響の受け方が違うと想定出来る
変更処理は単独での変更と、複数一括での変更、他にも複数Modelにまたがった変更など
表示はさらに色んな種類の表示方法を考える必要が出てくる
といいつつ、表示関係に関わらず取得処理は最低限サポートをしないと変更処理が出来ない


そこから、Modelに必要なinterfaceに必要なのはこの二種類

  • 最低限の取得処理
  • 変更に関わる全て


表示関係は表示の都合に合わせて自力でデータソースから取得する
ただし、変更の影響を最小限に抑える方法としてRDBならViewの積極活用を推奨


こんな感じでずっと思ってたけど、
最近Modelを妙に頑張ってViewから独立させようとする流れがあって凄く気になる
(自分の力では証明出来なかったけど、もしかして誰か証明しちゃった!?って疑問)