ビジネスロジックとサービスレイヤー


9

私はこの答えを読みます:https : //softwareengineering.stackexchange.com/a/234254/173318私の理解を訂正してください。

ビジネスルールとは、現実の世界でのビジネスのステップのリストを指します(コードなし)。

ビジネスロジックは、ビジネスルールをコードに変換するプロセスと、「ビジネスロジック」と呼ばれるこれらのコードの束/種類を指します。

また、サービス層は何に使用されますか?私がこの答えを読んだ場合、それはビジネスロジックと同じように聞こえますhttps://stackoverflow.com/a/4817935/4190539

サービスレイヤーは、ビジネスロジックとリポジトリが出会う場所ですか?


1
「サービス層」は一般的な用語であり、好きなものを含めることができます。あなたが引用したそのSOの質問は、「ASP.NET MVCのサービスレイヤー」について話していました。意図的に後者について話していますか?それとも違いを逃しただけですか?
Doc Brown

それは私がこれまでに得たものです。しかし、私はそれらすべてについてあなたの説明を聞きたいです。
カカシ

回答:


11

「サービスレイヤー」は、建築用語です。ユーザーインタラクションレイヤーの下、データアクセスレイヤーの上にある、多層アーキテクチャーの中間のどこかにあるシステムの一部を指します。

ビジネスロジックはサービスレイヤーに実装できるため、ビジネスルールを適用できます。

ただし、ビジネスロジックが最終的に他のレイヤーになる場合があることに注意してください。たとえば、一部のビジネスルールは、ユーザーエクスペリエンスを向上させるためにユーザーインタラクションレイヤーで適用されます(たとえば、サーバーに往復することなくチェックできるようにJavaScriptで記述されたバリデーター)。その場合、サービス層は通常、施行を複製します。

他のビジネスルールは、データベースレイヤーでのみ適用できます。たとえば、同時実行の問題(ライブラリブックをチェックアウトできるアプリケーションを想像してください)またはパフォーマンスの問題(多忙な販売員の年間コミッションを計算するプログラムを考えてください)複雑な料金体系)。


サービスディレクトリがあり、ビジネスロジックを配置し、リポジトリ、別のサービス、検証を挿入する場所としてクラスが含まれている場合は問題ありませんか?
カカシ

はい、データアクセスを含む他のサービスをサービスレイヤーに挿入するのは自然なことです。何らかの方法でデータを保存する必要があり、適切に記述されている場合、それ自体では方法がわかりません。
John Wu

リポジトリにはビジネスコードを含めないでください。それは、リポジトリが検証、フィルター、またはstrtolowerなどの他のstrijg操作から明確でなければならないことを意味しますか?
カカシ

必ずしもそうとは限りません(私の投稿で既に2つの例を示しました)が、できる限り多くのビジネスロジックをサービスレイヤーに移動することをお勧めします。
John Wu

さてさて、私が見ることができるリポジトリパターンコードはありますか?
カカシ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.