私は一種の設計に関する質問があります: 私はjspとそのjspのデータを取得したコントローラを持っています。そのデータの一部はサービスクラスから来ています。 mvcパターンはコントローラを使用してサービスクラスを呼び出し、その情報を自分のビュー(jsp)に渡すように指示しています。 私のJSPからサービスクラスを直接呼び出すことができないのはなぜですか?なぜjspから直接サービスクラスを呼び出さないのですか
0
A
答えて
0
これは、開発者が時々行うことです。しかし、あなたはすべきではありません。
MVCは、互換性と懸念の分離についてです。 JSPからサービスを呼び出す場合は、パラメータや戻り値の型に対して厳密な結合を作成します。
さらに、通常、システムは単独では開発されていません。サービス内に内部ロジック用に使用するgetAllAdmins()メソッドがあるとします。あなたは本当に別の開発者がJSPで直接それを使用し、間違ってすべての管理者を表示したいのですか?おそらくそうではありません。
0
できます。あなたはすべてを1つのクラスに入れても、多分それはうまくいくでしょう。しかし、なぜ?そのようにするとすべての柔軟性が損なわれます。 ほとんどの例は考えていませんが、大きなアプリケーションにどのような利点があるのか考えるべきです。 thisをお読みください。
関連する問題
- 1. JSPファイルから直接Javaメソッドを呼び出す
- 2. なぜインタフェース関数を直接呼び出せないのですか?
- 3. String.Containsが最後のオーバーロードを直接呼び出すのはなぜですか?
- 4. サービスクラスから呼び出され、EEGヘッドセットに接続されたときのタイマーエラー
- 5. AEMで直接JSPを呼び出す6.2
- 6. サービス接続がonResumeで呼び出されないのはなぜですか?
- 7. なぜブロードキャストレシーバがサービスを呼び出さないのですか
- 8. なぜunregisterReceiver()はonServiceDisconnectedを呼び出さないのですか?
- 9. なぜ呼び出されていないのですか?
- 10. なぜtextFieldDidEndEditing:呼び出されていないのですか?
- 11. なぜ配列参照で直接asList()を呼び出すことができないのですか?
- 12. window.setTimeout(someFunc、0)がsomeFuncを直接呼び出すのと同じではないのはなぜですか?
- 13. Python呼び出しのオーバーヘッドなしで直接numpy/scipy C関数をCythonから呼び出す方法は?
- 14. マップのputメソッドがクラス内で直接呼び出されているのはなぜですか?
- 15. なぜlaravelアサーションがクロージャから呼び出されないのですか?
- 16. BackgroundWorker.OnDoWorkが呼び出されないのはなぜですか?
- 17. なぜnewObjectメソッドが呼び出されないのですか?
- 18. なぜフィルタチェーンが呼び出されないのですか?
- 19. なぜviewWillAppearが呼び出されないのですか?
- 20. クラスが呼び出されないのはなぜですか?
- 21. afterRenderが呼び出されないのはなぜですか?
- 22. なぜLayer :: drawWithOpenGLが呼び出されないのですか?
- 23. FirebaseInstanceIdService.onTokenRefresh()が呼び出されないのはなぜですか?
- 24. コールバックが呼び出されないのはなぜですか?
- 25. gameCenterViewControllerDidFinishが呼び出されないのはなぜですか?
- 26. アクションフィルタが呼び出されないのはなぜですか?
- 27. なぜ$ routeChangeSuccessが呼び出されないのですか?
- 28. コンストラクタが呼び出されないのはなぜですか?
- 29. なぜコールバックが呼び出されないのですか?
- 30. なぜコンストラクタが呼び出されないのですか?
はい、私は "can"の代わりに "should"を使うべきだったと思います。私はできることを知っていた、私は私がするべきではないことを知っていた。私はちょうど理由を説明する方法を知りませんでした。ありがとうございました! –