こんな方におすすめ
- RestControllerの役割について知りたい方
- SpringBoot初学者
Controllerは監督でServiceは選手
SpringBootにおけるコントローラクラスとサービスクラス。両者の関係性はずばり「監督と選手」です。
Controllerは司令塔
どんなスポーツでも良い監督がいないチームは負けがちですし戦術も機能しません。
プログラムもそうです。
行動を取りまとめる司令塔であるControllerが存在することでより良いプログラムが完成するのです。
Serviceは選手
サッカーをイメージしてください。
選手はそれぞれ専門の役割を持っています。
例えばGK、FW、MFなどです。
SpringBootにおけるServiceクラスはサッカーにおける選手の存在に近いです。
この時のControllerはもちろん監督です。
何か問題があったりしたときは監督に報告しますし、監督からの指示があれば従いますよね。
Serviceの役割も選手と同じです。
SpringBootではControllerとServiceがいるがメリット
何となくControllerとServiceの関係性や必要性が理解できたでしょうか。
初学者にありがちな考え方として
「なるべく一つのクラスにいろんな処理をまとめよう」
というものがあります。
確かに見かけ上はシンプルに見えるかもしれませんが、実際の業務ではまずそんな構造のプログラムを組むことはないでしょう。
なぜなら、規模の大きいプログラムを組むときはなるべくシンプルな処理ごとに分けて作って行くからです。
そうするメリットとしてはプログラムの修正がしやすいという点があります。
もし複数の処理を一つのクラスにまとめてしまっていると修正が難しくなります。
こうしたことを考えるとSpringBootにおけるControllerとServiceの両方を使って処理を実装することは非常に便利だということがわかるでしょう。