ソフトウェアのユースケースをカプセル化します
-
21-09-2019 - |
質問
私は通常、自分が開発するすべてのソフトウェアのユースケースを書きます。各ユースケースについて、通常、フローを指示するコントローラーを書きます(ユースケースを実装します)。
私は最近、ASP.NET MVCを使用してWebアプリの開発を開始しました。 ASP.NET MVCのベストプラクティスの1つは、コントローラーのロジックを非常に少なくすることです。これを反映するためにデザインをどのように変更するかを理解できません。
私は基本的に、ユースケースをカプセル化する方法を望んでいます。
解決 3
ユースケースをカプセル化するビジネスコンポーネントを作成します。たとえば、休暇管理システムがある場合は、休暇の申請、休暇リクエストの承認、休暇リクエストなどのユースケースがある場合は、メソッドを持つleave Managerと呼ばれるビジネスコンポーネント(クラス)を作成することができます。 /操作)「適用」、「承認」、「拒否」など。これらの方法は、ユースケースをカプセル化します。これらの方法では、ビジネスエンティティとデータストアクラスを入力として、ユースケースを実行します。
class LeaveManager{
int Apply(from, to);
bool Approve(leaveApplicationId, approverId);
bool Reject(leaveApplicationId, approverId);
}
その後、必要なパラメーターを提供して、コントローラーのこのビジネスコンポーネントを使用してユースケースを実行できます。
他のヒント
脂肪モデルとスキニーコントローラーを持つことは、一般的にどの言語でも良い練習であり、具体的には.NET MVCではないと思います。これをチェックアウトしてください 論文 これは、Ruby on Railsの脂肪モードの利点を示すサンプルシナリオを通過します(ただし、アイデアはあらゆる言語に適用されます)。
コードのユースケースを表すために、コードにとってはるかに良い場所は、コントローラーではなくテストケースにあると思います。
モデルとヘルパークラスにできるだけ多くのビジネスロジックをプッシュし、主にURL呼び出しを処理し、関連するモデルをインスタンス化し、それらからデータを取得し、データをビューにプッシュするためにコントローラーを使用します。ビューとコントローラーには、できるだけ多くの決定を下す必要があるはずです。