MVCモデルにおけるビジネスロジック


MVCモデルに則り、Webアプリケーションを作成しようと試みております。

多くの情報をまとめますと、以下のように考えられます。

> ・ビジネスロジックはModel側に記述する  
>  ・ViewではModel側のデータを参照する形にする  
>  ・ControllerはModelやViewを介在する形で処理を割り振る

また、エビデンスのない情報ではございますが、以下の情報もございます。

> ・Viewでビジネスロジックを持たせる  
>  ・Viewは画面出力を軸とした役割のほかに、画面を介さずとも出力するならばデータ整形を担う

MVCモデルに関して現時点においてはこれが一番正しそうだ、といった情報やアドバイス・知見はございますでしょうか？




> ・ビジネスロジックはModel側に記述する  
>  ・ViewではModel側のデータを参照する形にする  
>  ・ControllerはModelやViewを介在する形で処理を割り振る

Webアプリケーションの設計手法で言うところのMVCはおおむね認識の通りかと思いますが、古典的MVCの定義から外れているのでそれはMVCではない、別の名称で呼ぶべきという主張もあります。「一番正しそう」といっても、多くの人がそう考えている、とか、多くの本にはそう書いてある、程度で、GoFのデザインパターンのように明確な定義があるわけではありません。

なので、あまり定義にこだわると永遠にアプリケーションを作り始めることはできません。

そのような呼び名が正しいかはさておきビューとコントローラとモデルの区別が不十分なプログラムは簡単にスパゲティになるというのは経験的な事実ですので、それらの役割分担を明確にしてそれを踏み越えたところにコードを書かないというポイントを意識しておけばいいのではないでしょうか。




> ・ビジネスロジックはModel側に記述する  
>  ・ViewではModel側のデータを参照する形にする  
>  ・ControllerはModelやViewを介在する形で処理を割り振る

Webアプリケーションの設計手法で言うところのMVCはおおむね認識の通りかと思いますが、古典的MVCの定義から外れているのでそれはMVCではない、別の名称で呼ぶべきという主張もあります。「一番正しそう」といっても、多くの人がそう考えている、とか、多くの本にはそう書いてある、程度で、GoFのデザインパターンのように明確な定義があるわけではありません。

なので、あまり定義にこだわると永遠にアプリケーションを作り始めることはできません。

そのような呼び名が正しいかはさておきビューとコントローラとモデルの区別が不十分なプログラムは簡単にスパゲティになるというのは経験的な事実ですので、それらの役割分担を明確にしてそれを踏み越えたところにコードを書かないというポイントを意識しておけばいいのではないでしょうか。

