6

既存のコントローラーにアクションを追加する代わりに、新しいコントローラーを作成することにした理由は何ですか?どこに線を引き、なぜですか?

4

3 に答える 3

5

新しいコントローラーをいつ作成するかを決定する主な要因は、それらが実行するロジック/機能です。関心の分離を確認する必要があります:

public class ProfileController {  }

public class MainController {  }

public class AccountController {  }

public class ShoppingCartController {  }

以前の各コントローラーは、対応するドメインサービス/モデルとそれらのビューの間の通信を調整するために使用されます。

于 2012-06-23T18:40:10.677 に答える
5

確かに理解できないのは、アクションの数です¹。少なくとも、「ああ、このコントローラーでは50を超えるアクションがあります。別のアクションを開始しましょう」という意味で、

ガイドライン²は次のようになります。コントローラーは、同じタイプのオブジェクトを操作するアクションの論理グループです(同じタイプのモデルの方が適切な定義である可能性があります)。モデルの機能が非常に豊富で、30の個別のアクションを実行できる場合は、先に進んでそれらを同じコントローラーに配置します。

コインの反対側:単純なモデルがあり、それぞれがわずかなアクションでコントローラーを作成していることに気付いた場合、それは心配する理由ではなく、アプリケーションの保守性に満足する理由になるはずです。


ノート:

¹もちろん、その数のアクションを持つコントローラーは、コードの悪用の可能性を示す危険信号であるため、その数を考慮に入れる必要があります。これは、ある種の厳格なルールではありません。

²そしてそれは本当にガイドラインです-ここでの目的は、いくつかの宗教的な経典に従うのではなく、維持可能なシステムを構築することです。

于 2012-06-23T18:40:23.973 に答える
2

一般的な経験則として、私はすべてのアクションをできるだけシンプルに保ちます。アクションが大きくなったり多すぎたりした場合は、ヘルパーヘルパー関数を作成できるかどうかを確認します。

必要に応じて、DBエンティティごとにコントローラーがあります。

たとえば、ユーザーコントローラー、カートコントローラー、アイテムコントローラーなどがあります。

特定のルールはないと思います。それはすべて論理的に保つことです。それがあなたにとって論理的であるならば、あなたがチームにいない限り、それは一般的にすべてが重要です、そしてそれは誰にとっても論理的である必要があります。

お役に立てれば。

于 2012-06-23T18:40:22.357 に答える