0

MVC アプリケーションのフレームワークを開発しています。フレームワークの一部として、ダミー アプリケーションを作成しました。私は CQRS でオニオン アーキテクチャと SOLID 原則に従っています。これは、MVC と CQRS を使用した最初のプロジェクトです。また、CQRS の Chain of Responsibility もフォローしています。

現時点では、ビジネス ロジックを保持する必要がある部分についてはよくわかりません。

例。私は銀行口座から引き落とし口座のコマンドを持っています. コマンドを DebitAccount として、ハンドラを IDebitAccountHandler として作成しました。IDebitAccountHandler は、DebitAccountHandler として必要な依存関係を持つインフラストラクチャ レイヤーに実装されます。

ここでは、口座から引き落とす前に残高を確認するコア ロジックを示します。インフラストラクチャでは変わらないため、これをコアに実装したいと思います。

このロジックをどこに実装し、必要な依存関係をロードする必要がありますか。私のコマンドは、メソッド本体のないインターフェイスであり、Handle/Execute のメソッドのみを含みます。

これは初心者の質問であり、パターンの理解が限られているために発生していると思います。

4

1 に答える 1

2

各コマンドはユースケースを表しています。コマンド ハンドラーにはロジックは含まれません。インフラストラクチャの問題を処理し、ドメインに委任します。

集計、エンティティ、値オブジェクト、サービスなど、すべてのロジックをドメイン モデルに含める必要があります。この例では、ロジックはAccount集計によってカプセル化されます。

public class Account
{
    private Balance _balance;

    public void Debit(Amount amount) 
    {
        if (_balance.IsSufficient())
                // debit..
    }
}
于 2013-10-09T12:51:52.523 に答える