質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

解決済

1回答

9509閲覧

SpringでControllerを分ける定義

kai_nullpo

総合スコア19

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

0クリップ

投稿2019/05/20 06:24

編集2019/05/20 06:49

#現在の課題について
現在Springの学習をしているため、Springでの質問とさせていただきますが
言語間での差があるような場合はそちらも教えていただけるとありがたいです。
MVCを学習しています。そちらでの疑問となります。
※質問の内容が不適切だった場合は教えていただければ適正に修正いたします。

Controllerクラスについてなのですが、分ける定義がいまいちよくわかっていないです。
分ける定義とは
Viewは画面ごとに分けております。
Modelですと機能ごとにクラスを作り、その中にさらに似た機能をメソッドで区切るという認識です。

例としまして、予約を管理するシステムだとします。

View
会員登録画面
予約画面
予約確認画面(予約番号を受け取る)
この二つを作成します。

Controller
Viewで受け取った値をModelへ渡す橋
Modelで作成された機能の実行
※どこまでクラスに分けるべきかを理解できていません。

Model
Viewで入力された会員登録情報をDBに保管。
Viewで入力された予約情報をDBに保存したり、そのための機能を実装する機能クラス
Viewで入力された予約番号をDBにアクセスしクエリしたり、そのための機能を実装する機能クラス。

上記をこのような形で分けたとします。

ここでControllerなのですが
Modelの機能ごと、または画面ごとに作成するべきなのか、予約という観点から似通った部分なので
一つにまとめて実装するべきなのかが理解するに至っていません。

#自分なりに考えてみたこと
Controller:Model
という記事を見かけたことがあり、1:1の関係と捉えましたので
Model毎にControllerを作成すべき。

しかしむやみにControllerクラスを増やすことによってプロジェクトが複雑になってしまうのではないかと考えています。
現在例にあげた程度の規模であれば1:1でも何も問題はないと考えていますが大きな規模のプロジェクトの場合ですと
どのような分け方をするのがベターであるかを知りたいです。

ご回答いただけると幸いです、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/05/20 06:34

「そもそもControllerとは?」ということでしょうか
kai_nullpo

2019/05/20 06:46 編集

更新いたしました。 Controllerとはというところにも通ずるかもしれませんが、正確にはControllerをどこまで分割しクラスを作成すべきなのか、といったところで悩んでいます。 1つController内で予約機能、予約情報確認の値をViewから受け取り、それを複数のModelとやりとりするのは正しい実装方法なのかを知りたいです。
m.ts10806

2019/05/20 07:59

割と抽象的な使い方(多種多様な使いかた)ができるので、何とも言えない部分がありますね。 http://m12i.hatenablog.com/entry/2014/11/15/150515 Controller:Model の出典も明記されるとどの記事を読んでどう理解したか分かるので回答も得やすくなると思います。 (むしろコントローラから複数Modelにアクセスする使い方は大体どのフレームワークでもするはずなので1:1という解説はにわかに信じがたいところはあります)
kai_nullpo

2019/05/20 08:32

すみません、文献を探しても見つからなかったのですが、mts様の回答で私の理解したいことが解決いたしました。ありがとうございます。 次回以降は参考文献なども添えて質問するようにいたします。
m.ts10806

2019/05/20 08:33

了解です。自己解決っぽいのでそのあたりの経緯も含めて具体的に回答にしておいてください。
guest

回答1

0

自己解決

修正欄のmts様の回答、リンクにて解決いたしました。
割と抽象的な使い方(多種多様な使いかた)ができるので、何とも言えない部分がありますね。
[http://m12i.hatenablog.com/entry/2014/11/15/150515
Controller:Model](http://m12i.hatenablog.com/entry/2014/11/15/150515 Controller:Model) の出典も明記されるとどの記事を読んでどう理解したか分かるので回答も得やすくなると思います。
(むしろコントローラから複数Modelにアクセスする使い方は大体どのフレームワークでもするはずなので1:1という解説はにわかに信じがたいところはあります)
こちらも参考にさせていただきました。
https://codeday.me/jp/qa/20190313/413332.html
ありがとうございました。

投稿2019/05/20 08:32

編集2019/05/20 08:49
kai_nullpo

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/05/20 08:34

「質問への追記修正依頼」はデフォルト非表示なので「コメントで」と書いても関連性はほぼないです。 質問と回答を見ただけでわかるように回答には改めて具体的に解決に至った経緯を記載してください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問