0

私は「Fat Controllers」について読んできましたが、そこにある記事のほとんどは、コントローラーからサービス/リポジトリ層のロジックを引き出すことに焦点を当てています。しかし、私は別の状況に遭遇したので、誰かが改善のアイデアを持っているかどうか疑問に思っています.

アクションが多すぎるコントローラーがあり、これをアクションの少ない多くのコントローラーに分割する方法を考えています。これらすべてのアクションは、すべて同じ集約に属するオブジェクトの挿入/更新/削除を担当します。したがって、この集約に属するクラスごとに個別のコントローラーを用意することに熱心ではありません...

詳細を表示するために、このコントローラーはタブ付きページで使用されます。各タブは編集用のデータの一部を表し、ここで使用されるすべてのドメイン モデル オブジェクトは同じ集計に属します。

何かアドバイス?

乾杯、モッシュ

4

2 に答える 2

0

すべてのタブに対して、返す必要のあるデータを示すタブパラメータを持つ1つのアクションを使用できます。

stringコントローラの仕事は、このタブをenum型変数にキャストすることです。次に、タブがリポジトリに送信されます。リポジトリのジョブは、タブの値に応じてデータを返すことです。

コントローラーは、サービス(入力バリデーターとマッパー)までその仕事をする必要があります。

マッパーサービスジョブは、ユーザー入力(通常は文字列)を実際の型付き値(int、System.DateTime、列挙型など)にマップすることです。

バリデーターの仕事は、入力が有効であることを確認することです。

この原則に従うと、コントローラーを非常に小さく保つことができます。

于 2010-03-12T05:50:50.713 に答える
0

シンプルで簡単なものが必要な場合は、コントローラーをタブに基づいて部分クラスに分割することをお勧めします。もちろん、それはまだファット コントローラーであり、さまざまなタブ機能が明確に分離されているだけです。

于 2010-03-12T16:46:27.410 に答える