1. ホーム
  2. design-patterns

[解決済み】MVCにおけるビジネスロジック【終了しました

2022-04-14 12:23:14

質問

2つ質問があります。

Q1. MVCパターンの中で、"ビジネスロジック"は具体的にどこに位置するのでしょうか?ModelとControllerで迷っています。

Q2. ビジネスロジックはビジネスルールと同じですか?違うのであれば、何が違うのでしょうか?

小さな例で説明していただけると幸いです。

どのように解決するのですか?

ビジネスルールはモデルに入れる。

例えば、あるメーリングリストのメールを表示していたとします。ユーザーがメールの横にある "delete" ボタンをクリックすると、コントローラはモデルに対してエントリNを削除するように通知し、その後モデルが変更されたことをビューに通知します。

おそらく、管理者の電子メールは決してリストから削除されるべきではないでしょう。それはビジネスルールであり、その知識はモデルに属するものです。ビューは最終的に を表します。 おそらくモデルは、ビジネスルールの関数である "IsDeletable" プロパティを公開し、ビューの削除ボタンが特定のエントリに対して無効になるようにします - しかし、ルール自体はビューに含まれません。

モデルは、最終的にデータのゲートキーパーです。UIに全く触れることなく、ビジネスロジックをテストすることができるはずです。