ホントはよくわからないMVC

RailsとかiOS SDKとか使ってるとデフォルトでMVCの親クラスがあって、下々の者はそれをありがたく継承してカスタムしなさいという風になっていて(実際下々なのですごくありがたい)、普段意識することがないんだけど、よくよく考えるとMVCのメリットって何なのと考えてみる。

例えばcocoa design patternsでは「ModelとViewを切り離して、それぞれが独立して変更可能にする」とある。

www.amazon.co.jp

これってなんかどこかで聞いたことあるフレーズだなと考えると、通常のクラス間の関係でも目指しているのはこれで、依存を少なくして再利用可能にしたいのはMVCとか言わなくても当たり前なところなので、もう一段階深い解答がほしいところ。(というか多分この本のどこかに深い解答書いてあるはず。)

しかし見つけられてないので個人の意見として、たぶん、

①UIベースのアプリケーションのクラス分けのベストプラクティスとして、表示に関わる部分とロジックに関わる部分を別々のクラスにしておけば再利用が促進される

表示に関わる部分とロジックに関わる部分を比べると、表示の方が性質的に変わりやすいので、別々のクラスにしている

ってところか。

なので必要に応じて、再利用が促進されるんであればMVCに追加でさらに層をつくって再利用すればいいってこと。