オブジェクト指向言語を使用していると、クラスの役割を明確にして、ViewとModelを分けなくてはならないと色々な本を見ていると記述してありますし、実際に分けておいたほうが何かと便利です。
プログラミングを始めた頃は利点はわかるけど、なぜだろうという疑問がわくし、実際にどのようにすればよいかがわかりにくいと思います。
では実際に具体的な例をあげてみます。
例:Javaで、RSSの情報を取得し、それを表示するプログラムを作成する場合
最初は、ブラウザ上で表示するので、アプレットを使用して作成していました。
これをRSSView.classの中で、RSS情報を取得し、表示する処理をしていたと仮定します。
ここで、仕様が変更され、Javaアプリで作成しなくてはならなくなったとします。
そうすると、また一からRSSView.classを変更しなくてはなりません。
これでは無駄ですね。
対策として、RSSModel.classを作成します。
その中で、RSSの情報を取得する処理をしておき、RSSViewでは、RSSModelの中身を取得するだけの処理にします。
このようにしておけば、SSModelを変更しなくてもRSSViewのみを変更すればよいことになります。
Viewというのは非常に変更がされやすいものです。
今回の例のように、RSSModelを作成しておけば、Viewの部分のみを修正して、テストすればよいことになります。
無駄な作業がなくなります。
プログラミングを始めた頃は利点はわかるけど、なぜだろうという疑問がわくし、実際にどのようにすればよいかがわかりにくいと思います。
では実際に具体的な例をあげてみます。
例:Javaで、RSSの情報を取得し、それを表示するプログラムを作成する場合
最初は、ブラウザ上で表示するので、アプレットを使用して作成していました。
これをRSSView.classの中で、RSS情報を取得し、表示する処理をしていたと仮定します。
ここで、仕様が変更され、Javaアプリで作成しなくてはならなくなったとします。
そうすると、また一からRSSView.classを変更しなくてはなりません。
これでは無駄ですね。
対策として、RSSModel.classを作成します。
その中で、RSSの情報を取得する処理をしておき、RSSViewでは、RSSModelの中身を取得するだけの処理にします。
このようにしておけば、SSModelを変更しなくてもRSSViewのみを変更すればよいことになります。
Viewというのは非常に変更がされやすいものです。
今回の例のように、RSSModelを作成しておけば、Viewの部分のみを修正して、テストすればよいことになります。
無駄な作業がなくなります。