現在、SpringBootでAPIを作っており、3層モデル(Application, Domain, Infrastructure)で設計しています。
その中で参考にしたアーキテクチャ図が以下のNTTDataのTERASOLUNAのものです。
![
ここで質問したいのが、Contoroller側で複数のServiceを呼びたい時の呼び方についてです。
Controller側は1つのServiceを呼び、そこから他のServiceを呼ぶのか、
Controller側で必要な複数のServiceを呼ぶのか。
どちらが良いのかわかりませんでした。
例えば、複数のServiceを使用する場合に、AService、BServiceがあったとして、
AServiceの処理結果をBServiceで用いる場合は、
前者の場合は、ASeviceの処理の中で、BServiceを呼び、その2つの処理の結果を呼び出し元に返す。
後者の場合は、ASeviceの処理結果を呼び出し元に返し、その結果をBServiceに渡して、BServiceの結果を受け取り、この2つの処理の結果を呼び出し元で結合する。
となるイメージです。
私的には、前者の方がしっくりきます。なぜかというとContoroller側ではなるべくロジックをもたせたくないからです。
後者の場合、結果の抽出や結合のロジックがApplication層に入るので、設計的にどうなんだろうとふわっとした疑問があります。
それともにその結合や抽出などのデータ処理を、このアーキテクチャ図でいうHelper逃して、
後者で実装するべきなのでしょうか?
ご意見を伺いたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。